0
我有一個問題。爲什麼我的程序不會讀取最後一個整數,如果我沒有在文件末尾放一個空格?如果我有一個只有數字的文本文件,沒有結束空格,程序不會讀取任何內容。讀取最後一個整數文件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;
}
您可以用英文編寫代碼。 – 21koizyd
閱讀[爲什麼iostream :: eof內循環條件被認爲是錯誤的?](https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – molbdnilo
雖然'!f1.eof()'會導致寫入最後一個值兩次,實際上我無法解釋也沒有重現爲什麼你的程序不能讀取任何*號碼。你爲'q'輸入一個大於0的值嗎? –