You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:10:33