cin对'+'/'-'类型检查失败的问题求助
cin对'+'/'-'类型检查失败的问题求助
我最近碰到个C++输入处理的小麻烦,想过来请教下各位!我的需求是交替输入整数和字符,然后把它们分别存到对应的int和char变量里。最开始我想了个直接的办法:先试着按整数读输入,要是读失败了,就重置cin的状态标志,再按字符来读。
我的代码大概是这样的:
int a; char c; while (true) { cin >> a; if (cin.fail()) { if (cin.eof()) { cout << "eof" << endl; break; } cin.clear(); cin >> c; // 后续处理逻辑还没写完,但核心问题已经出现了 } }
结果发现个坑——当我输入+或者-的时候,cin按整数读取居然不会触发fail状态!它就一直卡在那儿等后面输入数字,但我本来是想把+/-当成单独的字符来处理的啊!这直接打乱了我交替读整数和字符的逻辑,有没有大佬能给我支个招,怎么解决这个问题呀?
备注:内容来源于stack exchange,提问作者jasperfect
相关产品推荐
相关产品推荐

