我对c ++文件 I / O 有疑问。
当我在我的程序中使用while(fin>>x
)两次并且cout
两次时,我只会在屏幕上显示第一次。
我的 test.txt 是:
I like eat banana
I like eat apple
我的代码:
#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
using namespace std;
int main(){
ifstream fin;
fin.open("test.txt");
if(fin.fail()){
cout<<"Error!"<<endl;
exit(1);
}
else{
int i=0,j=0;
string x,y,a[20],b[20];
while(fin>>x){
a[i]=x;
i++;
}
fin.
while(fin>>y){
b[j]=y;
j++;
}
for(int q=0;q<20;q++){
cout<<a[q]<<" ";
}
for(int w=0;w<20;w++){
cout<<b[w]<<" ";
}
}
fin.close();
return 0;
}
答案 0 :(得分:2)
当您在之后写fin >> x
时,fin >> y
返回false(并退出第一个循环)的原因仍然存在。因此,一旦留下fin >> x
- 循环,将不会输入fin >> y
- 循环。