如何清除int的输出缓冲区



我是c++的新用户,遇到了一个问题。

如果int变量"x"的输入不是数字,那么c++似乎跳过了与char变量"y"关联的cin。我试着使用cin.ignore和cin.clear,但它们似乎不起作用。当int"x"的值不是数字(例如"a"*"(时,如何让程序仍然询问char"y"的值?

#include <iostream>
using namespace std;
int main()
{
int x;
char y;
cout << "num: ";
cin >> x;//int input
cout << endl;//blank line
cout << "char: ";
cin >> y;//char input
cout << endl;//blank line
return 0;
}

是否传递要忽略的参数?第一个参数是要忽略的最大字符数,第二个参数是在找到它之后应该停止忽略的标志(在下面的例子中,我把'n'放在

cin.clear();
cin.ignore(1000, 'n');

总之,代码中说:最多清除1000个字符或最多清除第一个"\n"。

最新更新