2014-11-14 47 views
-1

好吧,現在這是一個謎,沒有人問我可以解決。我也許是初學者,但這是我知道我不應該得到的。如果else語句錯了,或者我的編譯器錯了?

1>c:\users\kevin\documents\visual studio 2010\projects\movie\movie\p2 project.cpp(57): error C2143: syntax error : missing ';' before '{' 
1>c:\users\kevin\documents\visual studio 2010\projects\movie\movie\p2 project.cpp(68): error C2181: illegal else without matching if 

本節在這裏

int customer_menu(char signup(struct register_ regis)) 
{ 
    FILE *cni; /* cni means customer necessary info*/ 
    cni=fopen("login.txt","a+"); 
    if(cni!=NULL) 
    { 
     if (regis.category=="customer") 
     /*This is where the compiler say the error is at. Expecting a ';' here?:*/ 
     { 
      printf("\t\t~>~>~>~>~>~>~>menu~>~>~>~>~>~>~>~>~~ \n"); 
      printf("\t\t~>~>~>~>~>~>~>~>~>~>~>~>~>>~>~>~>~>~ \n"); 
      printf("\t\t~>~>~>~>>~>~>~>~>~>~>~>~>~>~>~>~>~>~ \n"); 
      printf("\t\t~>~>~>~>~>to login~>~>~>~>~>~press 1 \n"); 
      printf("\t\t~>~>~>~>~>to register~>~>~>~>press 2 \n"); 
      printf("\t\t~>~>~>~>~>to buy ticket~>~>~>press 6 \n"); 
      printf("\t\t~>~>~>~>~>to exit~>~>~>~>~>~>press 0 \n"); 
      printf("\t\t~>~>~>~>~>~>~>~>~>~>~>~>~>>~>~>~>~>~ \n"); 
      printf("\t\t~>~>~>~>>~>~>~>~>~>~>~>~>~>~>~>~>~>~ \n"); 
      scanf("%d",&choice); 
     } 
     else 
     { 
      int worker_menu(char signup(struct regis)); 
     } 
     fclose(cni); 
     /* And illegal use of else without matching if here?*/ 
    } 
    else 
    { 
     printf("an error occured. please try again\n"); 
     system("pause"); 
     system("cls"); 
     char log,reg; desion(reg, log); 
    } 
} 

我是否有錯誤評論之前的錯誤,編譯器跳過所以導致這樣一個令人震驚和不解的謎?

+2

您可能在函數之前忘記了右括號或括號*;那麼該函數就成爲該塊的一部分,直到編譯器遇到不再是塊的一部分的東西。你是否使用了一個帶有大括號/括號突出顯示的編輯器? – Evert 2014-11-14 15:05:38

+0

我只是試圖重新格式化你粘貼的代碼,看起來@Evert是正確的,你的第二個評論似乎是在一個塊的末尾的一行 – 2014-11-14 15:08:22

+0

我不明白你的意思。 – 2014-11-14 15:39:25

回答

1

INT customer_menu(字符註冊(結構register_吉斯)) {

這不是有效的函數聲明。如何解決它也不是很明顯。你想要這意味着什麼?

+0

我看到我的作品錯了,但那不是重點。重點是它要求「;」 afrter「)」但在我的if語句中的「{」之前。多數民衆贊成在真正吸引我。 – 2014-11-14 15:37:05

+0

@kevinhay:它可能是編譯器與三合一一樣困惑,當你解決這個問題時,其他錯誤將消失。 – 2014-11-14 17:59:22

+0

謝謝。如果我放在這裏的大部分東西,但現在唯一的東西是重新定義,不明確的標識符和其他一些東西。 – 2014-11-14 19:43:26