那为什么当我把cin.clear()那么cin.ignore()程序完美的作品,例如:我把chars和程序没有错误.
但是当我cin.ignore()先放入时cin.clear(),程序不会停止发送错误信号.
这是如何运作的?
不应该删除输入和未fail flag设置?
#include <iostream>
using namespace std;
class time
{
private:
int hours;
public:
void getime()
{
do
{
cout << "Enter hours: ";
cin >> hours;
if ( hours < 0 || hours > 23 || cin.fail() )
{
cin.clear();
cin.ignore(10,'\n');
cerr << "invalid time, minutes must be between 0 and 59 " << endl;
}
}while(hours<0 || hours>23);
}
};
int main()
{ …Run Code Online (Sandbox Code Playgroud)