2014-01-30 53 views
-4

我編譯我的代碼時遇到這些錯誤。錯誤:'else'之前的預期'}'?

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]); 
       } 
      } 
     }  
    } 
} 
+2

注:醜陋的代碼。學會使用'&&'和'||'。消除重複。 –

+0

刪除;在第46行 – user2699113

回答

3

的錯誤是:

   if(check(infix[i])); 

刪除尾隨;

   if(check(infix[i])) 
3

if(check(infix[i]));:刪除;底。

2

你的代碼是這樣寫:

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

這是一個很好的做法,{即使你根據聲明只有一行。
這樣做可能會幫助您發現可能存在的問題,例如您在那裏有;

另要注意,使用&&爲了清楚,而不是嵌套if秒。

相關問題