【问题标题】:comparing cin with strings in cpp [closed]将cin与cpp中的字符串进行比较[关闭]
【发布时间】:2021-12-28 13:18:55
【问题描述】:
char grade;
cin>>grade;       
if(grade ==  "A"){
  multOfGradeHour += 4.0*creditHour;
}

比较问题 我在 google 上查了一下,但没有找到任何好的解决方案。 当我在这里输入代码时,运行此代码编译器向我显示一个错误。c++ 禁止在指针和整数之间进行比较。我不明白这一点,因为我对指针一无所知。我尝试了很多东西,但我没有找到任何解决方案。任何人谁知道该怎么做?

【问题讨论】:

标签: c++


【解决方案1】:

您必须将"A"(它是一个const char*(指针))更改为一个字符A(在您的原始代码中转换为整数,因此编译器会发出令人困惑的错误消息):

char grade;
cin>>grade;       
if(grade == 'A'){
  multOfGradeHour += 4.0*creditHour;
}

【讨论】:

    【解决方案2】:

    问题"A"是一个string literal,类型为const char[2],它衰减const char *(即指向一个const char) 由于类型衰减

    这意味着您正在尝试将名为grade 的变量与char 类型的变量进行比较,而const char * 正是错误的含义。

    解决方案

    要解决此问题,请将 if(grade == "A") 替换为:

    if(grade ==  'A') //note A is surrounded by single quotes ' ' this time instead of double quotes " "
    

    此解决方案有效,因为这一次,'A'character literal 并且具有类型 char,这与变量 grade 的类型相同。所以,grade'A' 的类型是相同的,因此这是可行的。

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多