我有一個簡單的程序。它需要stdin
並輸出用戶剛剛輸入的內容。還有就是我用具有幾個問題是代碼:寫入文件時出錯
出於某種原因,在我輸入的中間,它停止服用輸入和退出程序。 [輸入爲黑體,下面的輸出不是]
[---] ./ a.out的
哈珀
哈珀
奧巴馬
奧巴馬
唐納德·特朗普
唐納德·特朗普
本·卡森
如果我把上面成一個名爲FILE1.TXT和寫入
./a.out < file1.txt
,它會起作用,但如果我把上面的輸入放到一個帶有「.in」擴展名的文件中並且做同樣的事情,它就不會。
- 如果我在輸入中更改naems,它會改變接受的輸入行數。
如果有人告訴我發生了什麼,我會很感激。
感謝
我的代碼是:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main() {
bool empt = false;
int num_ppl = 0;
int num_spoilt = 0;
ofstream names2 ("names2.txt");
if (names2.is_open()) {
int a = 0;
while(1) {
string line;
getline(cin, line);
if (line.length() == 0) {
empt = true;
break;
}
if (((line[a] >= 'A') && (line[a] <= 'Z')) ||
((line[a] >= 'a') && (line[a] <= 'z'))) {
cout << line << endl;
names2 << line;
names2 << endl;
num_ppl++;
} else {
break;
}
a++;
}
names2.close();
}
}
順便說一句,你可以很容易地發現的問題,如果你只知道如何使用調試器。如果在調試器中一行一行地逐行瀏覽代碼,同時觀察變量和它們的值,則很容易很快發現問題。 –