多字符字符常量警告

时间:2018-07-20 12:59:14

标签: c++ c++11

    if(per>=80)
  grade='A+';
    else if(per>=75&&per<=79)
  grade='A';
    else if(per>=70&&per<=74)
  grade='A-';
    else if(per>=65&&per<=69)
  grade='B+';
    else if(per>=60&&per<=64)
  grade='B';
    else if(per>=55&&per<=59)
  grade='B-';
    else if(per>=50&&per<=54)
  grade='C+';
    else if(per>=45&&per<=49)
  grade='C-';
    else if(per>=40&&per<=44)
  grade='D';
    else
            grade='F';

当我运行此代码时,我收到消息多字符字符常量。我看到了相同问题的先前解决方案,但未能在我的代码中实现它。请任何人帮助我并告诉我应该使用什么来运行代码< / p>

2 个答案:

答案 0 :(得分:2)

这是您的引号。 char文字使用一个字符周围的单引号,多个字符周围的单引号解释为整数类型(See here)的文字,而零个或多个字符周围的双引号则解释为const char*(即C字符串)。

因此,您的'A+'int,而不是您可能想要的charstring。解决方法是改用双引号,假设grade的类型为char*std::string

答案 1 :(得分:0)

撇号(')标记仅用于字符,例如单个字母A。如果要使用A +,则不再是单个字母,它是字符串。对于字符串,您应该使用引号(“)。因此,您需要将成绩变量的类型更改为字符串而不是char,然后将'替换为”。