У меня проблема. Когда я использую функцию ниже, я получил дубликат последней записи в моей повестке дня (массив записей, "контакт"). Как я могу решить эту проблему? Извините, если я попросил ответить на вопрос Q
void load(agenda a,int& r){
r=0;
contact c;
fstream f;
f.open("agenda.txt",ios::in);
if(!f)
cout<<"\nError!";
else
while(!f.eof()){
f>>c.name;
f>>c.number;
strcpy(a[r].name,c.name);
strcpy(a[r].number,c.number);
r++;
}
f.close();
}
Файл должен достигнуть EOF
для eof()
return true.
Если после последнего значения есть пробел, вы не достигнете EOF
до следующей попытки чтения.
вы можете проверить, выполнено ли каждое чтение следующим образом:
if(!f>>value) break;
или итерации до >>
оператор не будет работать следующим образом:
while(f>>c.name>>c.number){
...
}