C++ 標準庫中 operator>> 與 getline 對空白字符的處理機制截然不同,是初學者常見陷阱。
int n; string s; cin >> n; // 讀取數字,留下 '\n' getline(cin, s); // 讀到 '\n' 立即返回空串! // 解決:cin.ignore() 或 getline 前先吃掉換行
operator>> 讀取格式化數據getline 讀取整行,配合 stringstream 解析getline 前調用 cin.ignore(numeric_limits<streamsize>::max(), '\n') 清空行尾理解流狀態與空白處理機制,是 C++ I/O 穩健編程的基礎。