我收到以下错误:[警告]多字符字符常量

时间:2015-02-17 19:17:39

标签: c++ c compiler-errors

嘿,我刚刚开始编程,所以我不知道如何修复它。这是我的代码:

if(f_1 == 'x' && f_2 == 'x' && stupid < '80' ) 
       {
              f_3 == 'o';
              player_turn = '1';

              }
       else if(f_2 == 'x' && f_3 == 'x' && stupid < '80')

              {
              f_1 == 'o';
              player_turn = '1';
              }
  ...

但我不知道他为什么不在这里给出错误:

 if (eingabe == '1' && f_1 == '1' && player_turn == '1' )
    {
        f_1= 'x';
        player_turn = '2';
        cout << "Spieler Zwei ist am Zug" <<endl;
    }
    else if (eingabe == '2' && f_2 == '2' && player_turn == '1') {
        f_2= 'x';
        cout << "Spieler Zwei ist am Zug" <<endl;
            player_turn = '2';
        } 

...

这不是同一个问题。我用Google搜索了,但我不明白我在哪里犯了错误&#34;&#34;和&#39;&#39;

3 个答案:

答案 0 :(得分:1)

'80'是一个有效的多字符常量,但很可能不是你想要的。因此编译器就此警告你。

  

“但我不知道他为什么不在这里给出错误:”

我无法从你的背景中看出你实际上想要实现的目标,但是

if (eingabe == '1' && f_1 == '1' && player_turn == '1' )

第二个样本中的字符常量都很好。

答案 1 :(得分:0)

您的问题在以下代码中

stupid < '80'

假设stupid的类型为char,则该值应为单个字符。 '80'不是有效的单字符文字,它是一个多字符文字,可能是你不想要的。

OTOH,在第二个片段中,所有字符文字都是单字符常量,因此,它是正确的,不会产生任何警告。

答案 2 :(得分:0)

单引号''用于字符文字(即一个字符),双引号""用于字符串文字(字符数组,以NUL /零结尾)。有问题的多字符文字是'80' - 单引号内有两个字符。