C 中的getline() 和控制台輸入
在C 中, getline() 函數用於從流中提取一行文本,通常但是,當在循環中多次使用時,它可能會出現異常。
問題:
嘗試使用getline() 收集字串的使用者輸入以及使用>> 收集整數和雙精確度數時,使用者無法輸入第一個字串相反,控制台遊標會跳到第二個getline() 之後的下一個輸入提示。
解釋:
問題源自於getline() 和>> 運算子的混合,並讀取輸入,直到到達a但是,它會在輸入流中留下換行符(n)。被呼叫時>>,它將換行符讀取為空字串,導致不良行為。符> ;> 一致:
使用getline() 一致:如果輸入涉及字串或混合類型,請專門使用getline() 並從檢索到的字串中解析數字。可以使用stringstream 或Boost 這樣的函式庫來完成。
以上是為什麼使用 `>>` 後 getline() 會在迴圈中出現意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!