Windows 控制台程序,輸入 `Ctrl+Z` (EOF) 後循環結束,但 `cout << count` 未顯示,程序直接退出。
cout << count << " characters read\n" << flush; // 或 endl (含換行+刷新)
// C++ 風格
cin.clear(); // 清除 EOF 狀態
cin.ignore(numeric_limits::max(), '\n');
cin.get(); // 等待按 Enter
// 或 C 風格
getchar(); getchar(); // 兩次吸收殘留換行符
// 編譯後
myprogram < input.txt
// 輸出直接顯示在終端,無窗口關閉問題
#include
#include
using namespace std;
int main() {
char ch;
int count = 0;
while (cin.get(ch)) { // 直接用返回值判斷,包含 EOF/錯誤
cout << ch;
++count;
}
cout << count << " characters read\n" << flush;
// 調試時可加 cin.get(); 但發布版應移除
return 0;
}
**本質是 IDE 控制台生命周期管理問題,而非代碼邏輯錯誤**。養成顯式 `flush`/`endl` 習慣,調試用「運行不調試」(Ctrl+F5) 或外部終端運行。