對於noob問題感到抱歉,但我是C++新手。簡單noob I/O問題(C++)
我需要從文件中逐行讀取一些信息,並執行一些計算,然後輸出到另一個文件中。例如,我們讀取每行的唯一ID,名稱和2個數字。最後2個數字相乘,並在輸出文件中,ID,名稱和產品是由線印刷行:
input.txt中:
2431 John Doe 2000 5
9856 Jane Doe 1800 2
4029 Jack Siu 3000 10
output.txt的:
ID Name Total
2431 John Doe 10000
9856 Jane Doe 3600
4029 Jack Siu 30000
我的代碼與此類似,但只有第一行出現在輸出文件中。如果我按Enter
反覆,其它線路出現在輸出文件:
#include <fstream>
using namespace std;
ifstream cin("input.txt");
ofstream cout("output.txt");
int main() {
int ID, I, J;
string First, Last;
char c;
cout << "ID\tName\t\Total\n";
while ((c = getchar()) != EOF) {
cin >> ID >> First >> Last >> I >> J;
cout << ID << " " << First << " " << Last << " " I * J << "\n";
}
return 0;
}
這是我唯一的問題,該值不會出現在輸出文件,除非我按Enter
多次,然後關閉該程序。任何人都可以爲我的代碼提出一個修復方案,讓它在沒有鍵盤輸入的情況下完成任務嗎?謝謝!
將cin/cout更改爲其他值。閱讀起來很麻煩,可能會導致問題。 – 2010-07-08 19:46:00
只是約定的問題,在頭文件''中定義'cin'和'cout'來引用'stdin'和'stdout'。如果您想使用文件進行輸入和輸出,請使用控制檯的重定向功能:'app < input.txt > output.txt'。現在您的應用程序可以使用不同的輸入和輸出文件,而無需重新編譯。 –
Eclipse
2010-07-08 19:47:37