В моем классе у меня есть этот метод ifstream Мне это нужно, чтобы прочитать файл и записать информацию в мои уже созданные объекты Что-то не так с кодом Сначала значение a.engiene вставляется с пробелом перед значением - «бензин»Что не так с моим методом ifstream?
И когда заданы значения второго объекта и третьего объекта, метод не присваивает правильное значение для каждого атрибута.
friend ifstream& operator>>(ifstream& in, Auto &a)
{
char temp[31];
temp[0] = '\0';
in.getline(temp, 30, ':');
if (temp[0])
{
in.getline(temp, 30, ':');
delete[]a.engine;
a.engine = new char[strlen(temp) + 1];
strcpy(a.engine, temp);
in.getline(temp, 30, ':');
a.max_speed = atoi(temp);
in.getline(temp, 30, ':');
a.engine_cc = atoi(temp);
in.getline(temp, 30, ':');
a.avg_consumption_urban = atoi(temp);
in.getline(temp, 30, ':');
a.avg_speed_urban = atoi(temp);
in.getline(temp, 30, ':');
a.avg_consumption = atoi(temp);
in.getline(temp, 30, ':');
a.avg_speed = atoi(temp);
return in;
}
else return in;
Это, как я называю метод в основной:
ifstream f1("autoc.txt", ios_base::in);
f1 >> auto1 >> auto2 >> auto3;
Это файл данных:
auto1
engine: gasoline
max_speed: 250
engine_cc: 1980
avg_consumption_urban: 11
avg_speed_urban: 50
avg_consumption: 8
avg_speed: 100
auto2
engine: diesel
max_speed: 230
engine_cc: 1600
avg_consumption_urban: 9
avg_speed_urban: 50
avg_consumption: 6
avg_speed: 80
auto3
engine: hybrid
max_speed: 190
engine_cc: 1450
avg_consumption_urban: 7
avg_speed_urban: 50
avg_consumption: 4
avg_speed: 90
Это окно вывода: http://imgur.com/tHe49se
Это не является дубликатом моего другого вопроса. У меня есть этот код, который почти работает. Мне нужно настроить правильное значение для моих атрибутов для каждого объекта.
Что вы делаете? Вы должны ** пропустить имена свойств ** (чтение до ':') и ** затем ** прочитать значения. Пожалуйста, исправьте. – LogicStuff
Возможный дубликат [Из файла, как я читаю из определенной точки на C++] (http://stackoverflow.com/questions/34345349/from-a-file-how-do-i-read-from-a -certain-point-in-c) – LogicStuff
Это не дубликат. Там у меня был неопределенный вопрос. Здесь у меня есть этот код, который мне нужно исправить. Это почти работает. И как мне сделать то, что вы сказали? –