Для проекта, который я делаю, мы должны заполнить очередь объектами «Дом». Объекты «Дома» получают свою информацию из файла с именем «data.dat». Каждая строка файла - это еще одна вещь, которая входит в объект дома. Поэтому сначала я беру char * для адреса, затем int, другой int, третий int, а затем еще один char *. Мы не вслух использовать строки, чтобы получить переменные char *, которые, как я полагаю, являются тем, где я сталкиваюсь с моей проблемой. Каждый раз, когда я компилирую, он говорит мне, что у меня ошибка сегментации. Вот площадь моей queue.cpp, что я уверен, что ошибка вЧтение строки по строке из файла с разными типами переменных
#include"queue.h"
#include<iostream>
#include<fstream>
#include<istream>
Queue::Queue(const char *filename){
head = NULL;
tail = NULL;
std::ifstream infile(filename);
char * address = NULL;
int footage = 0;
int bedrooms = 0;
int bathrooms = 0;
char * features = NULL;
while(!infile.eof()){
while(infile.get() != '\n'){
//std::cout << infile.get();
infile.get(address[i]);
}
infile >> footage >> bedrooms >> bathrooms;
while(infile.get() != '\n'){
infile.get(features[i]);
}
enqueue(House(address, footage, bedrooms, bathrooms, features));
}
infile.close();
}
Вот файл заголовка объекта дом:
House();
House(char * ad, int fo, int be, int ba, char * fe);
char * getAddress();
int getFootage();
int getBedrooms();
int getBathrooms();
char * getFeatures();
void setAddress(char * ad);
void setFootage(int fo);
void setBedrooms(int be);
void setBathrooms(int ba);
void setFeatures(char * fe);
friend std::ostream& operator<<(std::ostream& out, House& house);
private:
char * address;
int footage;
int bedrooms;
int bathrooms;
char * features;
};
и data.dat выглядит как ...? – sehe