我在使用getline方法獲取用戶輸入的消息時遇到問題,我在使用類似以下內容的方法:string messageVar;cout << "Type your message: ";getline(cin, messageVar);但是,它并沒有停止獲取輸出值,這怎么了?
3 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
如果輸入中只有一個換行符,則只需執行
std::cin.ignore();
會很好的工作。它從輸入中讀取并丟棄下一個字符。
但是,如果輸入中除了換行符之外還有其他內容(例如,您讀了一個單詞,但用戶輸入了兩個單詞),則必須
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
參見例如該ignore功能的參考。
為了更加安全,請循環執行上述第二種選擇,直到gcount返回零。
- 3 回答
- 0 關注
- 1060 瀏覽
添加回答
舉報
0/150
提交
取消