错误:在'else'之前预期'}'?

时间:2014-01-30 11:42:33

标签: c compiler-errors

编译代码时出现这些错误。

experiment.cpp: In function ‘void convert(char*)’:
experiment.cpp:47:5: error: expected ‘}’ before ‘else’
experiment.cpp:47:5: error: expected ‘}’ before ‘else’
experiment.cpp: At global scope:
experiment.cpp:53:3: error: expected declaration before ‘}’ token

但我不明白为什么。我多次检查了所有的支撑。

void convert(char *infix)
{
    for(int i = 0 ; i < m ; i++)
    {
       if(isalpha(infix[i]))
          printf("%c",infix[i]);
       else if(ispunct(infix[i]))
       {
           if(!isempty())
               push(infix[i]);
           else
           {
               if(check(infix[i]));
                  push(infix[i]);
               else
               {
                  printf("%c",pop());
                  push(infix[i]);
               }
           }
       }    
    }
}

3 个答案:

答案 0 :(得分:3)

if(check(infix[i]));:删除最后的;

答案 1 :(得分:3)

错误在:

               if(check(infix[i]));

删除尾随;

               if(check(infix[i])) 

答案 2 :(得分:2)

您的代码就像写作:

if(check(infix[i])) { }  //if(something); == if(something) { }
push(infix[i]);
else                     //See why there's a problem?

即使您在声明中只有一行,也可以使用{
这样做可能会帮助您揭示可能存在的问题,例如您在那里;

另一个注意事项,为清晰起见使用&&而不是嵌套if s ..