#include<iostream>
#include<fstream>
#define N 100
struct student{
int x;
int y;
};
using namespace std;
int main(){
student a[N];
ifstream infile("1.txt",ios::in);
if(!infile){
cerr<<"open error!";
exit(1);
}
int n=0;
for(int i=0;i<N;i++){
if(infile){
// if(!infile.eof()){
infile>>a[i].x>>a[i].y;
n++;
}
else break;
}
cout<<n<<endl;
infile.close();
for(int i=0;i<3;i++)
cout<<a[i].x<<' '<<a[i].y<<endl;
}
1.txt
输出结果:
当用如上方法时,会发现n=4,也就是说虽然文本里只有3个数据,它却循环了4次,输入了4个数据(可能会导致乱码的出现)
解决办法:
if(infile){
infile>>a[i].x>>a[i].y;
n++;
}
改为
if(!infile.eof()){
infile>>a[i].x>>a[i].y;
n++;
}
关于!infile.eof():