我在使用getline方法获取用户输入的消息时遇到问题,我在使用类似以下内容的方法:string messageVar;cout << "Type your message: ";getline(cin, messageVar);但是,它并没有停止获取输出值,这怎么了?
3 回答
![?](http://img1.sycdn.imooc.com/545866c40001561502200220-100-100.jpg)
白板的微信
TA贡献1883条经验 获得超3个赞
如果输入中只有一个换行符,则只需执行
std::cin.ignore();
会很好的工作。它从输入中读取并丢弃下一个字符。
但是,如果输入中除了换行符之外还有其他内容(例如,您读了一个单词,但用户输入了两个单词),则必须
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
参见例如该ignore功能的参考。
为了更加安全,请循环执行上述第二种选择,直到gcount返回零。
- 3 回答
- 0 关注
- 1037 浏览
添加回答
举报
0/150
提交
取消