輸入數字後按回車,程序卡住無輸出,`while (cin >> iVal)` 未退出。
`cin >> iVal` 遇到**非整數輸入**(如換行符、字母)會進入失敗狀態,但**不消耗換行符**,導致無限循環。且控制台輸入流無 EOF 信號(Windows `Ctrl+Z`、Linux `Ctrl+D` 才算 EOF)。
cout << "輸入數字,輸入 0 結束:\n";
while (cin >> iVal && iVal != 0) {
vInt.push_back(iVal);
}
// 後續處理
或讀取整行再解析:
string line;
getline(cin, line);
istringstream iss(line);
while (iss >> iVal) vInt.push_back(iVal);
輸出相鄰和的循環中 `*(++it)` 會導致迭代器雙重遞增,應改為:
for (auto it = vInt.cbegin(); it != vInt.cend() - 1; ++it) {
cout << (*it + *(next(it))) << " ";
}