循環中第一次 getline 正常,後續直接跳過輸入,讀到空行。
cin >> len 讀取整數後,緩衝區殘留換行符 \n。首次 getline 讀取該換行符並返回空串(或正常讀取下一行),但後續循環若無清理,getline 會立即讀到殘留的換行符。
cin >> len;
cin.ignore(numeric_limits::max(), '\n'); // 清理緩衝區至換行符
for (int i=0; i
operator>> 和 getline 時,**緊跟在 >> 後調用 ignore()**。getline 讀行,再用 stringstream 解析數字。