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();
}
答案 0 :(得分:0)
文件需要EOF
eof()
才能返回true。
如果在最后一个值之后有一个空格,您将无法到达EOF
,直到下一次尝试。
你可以检查每次读取是否成功:
if(!f>>value) break;
或迭代直到>>
运算符将失败,如下所示:
while(f>>c.name>>c.number){
...
}