Ken*_*nta 0 c++ loops cin clear while-loop
我正在运行一个while循环,它将使用用户输入的浮点数并将它们添加到一起,直到在输入中放入其他内容.
while(cin >> input)
{
price += input;
cout << "Next price: ";
}
Run Code Online (Sandbox Code Playgroud)
在此之后,我有用户输入他们支付了多少:
cout << "Enter the amount paid: ";
cin >> paid;
cout << "You paid: " << paid << endl;
Run Code Online (Sandbox Code Playgroud)
在运行程序时,循环执行正常,我可以cout正确地得到总价格,但它会跳过该cin >> paid;行并输出为You paid: nan.
我尝试cin.clear()在循环和下一个输入之间放置,但是在运行它时,输出是:You paid: 0
我是否需要更改while循环或使用其他版本来清除输入?我是C++的新手.谢谢!
使用时cin.clear(),它会重置错误标志.但是,流中的数据仍然存在.在尝试阅读之前,您需要忽略其余部分paid.
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Run Code Online (Sandbox Code Playgroud)
确保添加#include <limits>使用std::numeric_limits
| 归档时间: |
|
| 查看次数: |
1961 次 |
| 最近记录: |