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

C++中如何比较用户输入的符号?解决指针与整数比较编译报错

解决C++中char与双引号字符串比较的编译错误

错误原因

编译错误的核心是类型不匹配:

  • 变量c是char类型,本质是单个字符的整数表示
  • 双引号包裹的"+"、"-"、"*"是C风格字符串,实际是const char*类型的指针

C++标准禁止整数(char属于整数类型)与指针直接比较,因此触发ISO C++ forbids comparison between pointer and integer错误。

修复方案

将比较时的双引号替换为单引号,单引号包裹的是单个字符常量,类型为char,和变量c的类型完全匹配:

#include <iostream>

int main(){
    int a, b;
    char c;
    std::cin >> a >> c >> b;
    if (c == '+' ){
        std::cout << (a + b);
    }
    if (c == '-'){
        std::cout << (a - b);
    }
    if (c == '*'){
        std::cout << (a * b);
    }
}

额外优化建议

可以把多个独立if改成else if结构,避免执行完匹配的条件后仍继续判断后续分支,同时增加非法输入的处理:

#include <iostream>

int main(){
    int a, b;
    char c;
    std::cin >> a >> c >> b;
    if (c == '+' ){
        std::cout << (a + b);
    } else if (c == '-'){
        std::cout << (a - b);
    } else if (c == '*'){
        std::cout << (a * b);
    } else {
        std::cout << "不支持的运算符";
    }
}

内容的提问来源于stack exchange,提问作者Ronkly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:30:57