即:輸入內容 → Enter → 新行 → Ctrl+Z → Enter
cin >> ch 從緩衝區讀取,緩衝區空則阻塞等待新行。Ctrl+D 立即生效(不等 Enter)。Ctrl+D 相當於「提交當前行」(不發送 EOF),二次 Ctrl+D(空行)才發送 EOF。
#include
using namespace std;
int main() {
char ch;
while (cin >> ch) {
cout << "read: " << ch << endl;
}
cout << "EOF reached, loop exited." << endl;
return 0;
}
Windows 運行:輸入 abc Enter → 讀到 a,b,c;新行 Ctrl+Z Enter → 退出。
program < input.txt 自動在文件末尾觸發 EOF,無需手動操作。getline 解析。cin.eof() 區分正常結束 vs 錯誤結束 (cin.fail())。