VS 編譯運行簡單 C++ 程式,輸入數字後按 Enter 無任何輸出,程式似乎卡住。Code::Blocks 同樣現象。
程式使用 while (cin >> x) 或類似循環讀取輸入,缺少輸入結束標記(EOF)。控制台程式預設從標準輸入讀取,直到遇到 EOF 才結束循環。Windows 控制台的 EOF 快捷鍵為 Ctrl+Z(然後按 Enter)。
1)^Z)程式即可正常退出循環並輸出結果。
// 方案一:固定讀取次數
for (int i = 0; i < 2; ++i) {
if (!(cin >> x)) break;
// 處理邏輯
}
// 方案二:特定結束條件
while (cin >> x) {
if (x == -1) break; // 約定 -1 為結束標記
// 處理邏輯
}
// 方案三:讀取整行再解析
string line;
while (getline(cin, line)) {
if (line.empty()) continue;
stringstream ss(line);
while (ss >> x) { /* 處理 */ }
}
Console (/SUBSYSTEM:CONSOLE)程式.exe < input.txt