getline 不提示輸入:緩衝區問題的一個案例
在C 中使用getline(cin, mystr) 時,您可能會遇到問題是它不提示使用者輸入,而是將初始值“0”分配給價格變數。這是因為 getline 讀取輸入直到遇到換行符號 ('n'),並且輸入緩衝區中可能存在揮之不去的換行符。
混合輸入流運算子(如 >>)時會出現問題。與 getline.當您使用 cin >> i 讀取一個整數,使用者輸入後面跟著一個換行符號。但是,該換行符仍保留在輸入緩衝區中。當您隨後呼叫 getline 時,它將換行符號解釋為輸入,而不提示使用者。
可能的解決方案:
建議實務:
最佳實務是對所有輸入使用 getline,確保換行符得到正確處理,並且始終提示輸入。避免混合>>使用 getline 來防止這些緩衝區問題。
以上是為什麼 `getline` 不提示輸入 C 語言?的詳細內容。更多資訊請關注PHP中文網其他相關文章!