我有一些基本上看起来像这样的代码
int a;
cin>>a;
if(!cin.good())
{
std::cin.clear();
std::cin.ignore(2);
// set some default value for 'a' and display some messages
}
如果我给出一个整数(如预期的那样),或者我尝试稍微弄乱它并给出最多 2 个字符,这很好用。例如。'ss' ,但如果我给出一个 3 char 输入 'sss' ,最后一个 's' 不会被忽略,并被接受为我在程序中的更多 cin 的输入。
在第一个 cin 发生后,有没有办法计算标准输入(缓冲区?)中的字符数,所以我可以放心地忽略所有这些。