使用 getline 解决输入问题
此代码在使用运算符>>处理其他输入后,使用 getline 函数读取输入。但是,getline不会提示用户输入,而是使用价格变量的初始值 0。
此行为的原因是与operator>> 和getline 相关。operator>> 是以空格分隔的,这意味着当使用operator>> 时,它会停止读取输入。可以按回车键提交输入,将换行符留在输入缓冲区中。
随后,当调用 getline 时,它会立即在中查找换行符缓冲区并使用它来结束输入,甚至在让用户有机会输入实际价格之前要解决此问题,有两种方法:
1。虚拟 getline 调用
在调用 getline 之前,使用ignore()函数从输入缓冲区中清除换行符。或者,您可以对 getline() 进行虚拟调用以删除换行符。
2.单独使用 getline
不要使用运算符>>,而是对所有输入使用 getline,并使用诸如用于整数的 stoi() 和用于浮点数的 stod() 等函数将获取的字符串转换为所需的数据类型。这种方法确保了数据的安全性和稳健性。
以上是为什么使用'>>”后'getline”不提示输入,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!