当尝试使用C ++从.txt文件读取数据时,我遇到了一个奇怪的现象,当我的程序尝试将char输入到int变量(例如,到a1)中时,程序将陷入while循环中。
我知道,如果将int a1 = 0;
更改为char a1;
,则可以解决以下代码的问题。我的问题是,为什么文件指针会在遇到的第一个字符处停止?我认为它将只是将字符转换为ASCII整数,或者只是将其跳过,就好像它是制表符或空格一样。
是我要测试的代码。
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream in;
int a1=0;
int a2=0,a3=0,a4=0;
in.open("input.txt");
while(!in.eof()){
in >> a1 >> a2 >> a3 >> a4;
cout << a1 << " "<< a2 << " "<< a3 << " "<< a4<<endl;
cout << SEEK_CUR <<endl;
}
return 0;
}
然后是“ input.txt”
a 42 94 32
b 33 19 82
c 88 40 18
d 92 45 19
e 77 25 84
输出为
0 0 0 0
1
0 0 0 0
1
0 0 0 0
1
.
.
and so on