读取最后一个整数文件C++



我有一个问题。如果我不在文件末尾放置空格,为什么我的程序不读取最后一个整数?如果我有一个只有数字的文本文件,没有结束空格,程序不会读取任何内容。

这是我的程序:

#include <iostream>
#include <fstream>
using namespace std;
int main(){
fstream f1,f2;
int k;
int q;
cout << "Inserisci numero lettere da leggere : ";
cin >> q;
f1.open("in.txt", ios::in);
f2.open("out.txt", ios::out);
if(f1.fail()){
cout << "Impossibile aprire il file";
exit(1);
}
f1 >> k;
while( !f1.eof() && q > 0){
q--;
cout << k << 'n';
f2 << k;
f1 >> k;
}
f1.close();
f2.close();
return 0;
}

程序读取所有数字,但读取操作后必须!f1.eof()检查。当最后一个数字之后有文件结尾时,您永远不会输出它。

取代

f1 >> k;
while( !f1.eof() && q > 0){
q--;
cout << k << 'n';
f2 << k;
f1 >> k;
}

while( f1 >> k && q > 0){
q--;
cout << k << 'n';
f2 << k;
}

并阅读一些关于通过流输入/输出的文章。

最新更新