首页 > 解决方案 > 多字符字符常量警告

问题描述

    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';

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

标签: c++c++11

解决方案


是你的引号。围绕一个字符的单引号用于char文字,围绕多个字符的单引号被解释为整数类型的文字(参见此处),而围绕零个或多个字符的双引号被解释为const char*(即 c 字符串)。

因此,你的'A+'是一个,int而不是你可能想要的。解决方法是改用双引号,假设它的类型是or 。charstringgradechar*std::string


推荐阅读