If statement 如果else语句是错误的,或者我的编译器是';怎么了?

If statement 如果else语句是错误的,或者我的编译器是';怎么了?,if-statement,wait,If Statement,Wait,好了,现在有一个我问过的人都无法解开的谜团。我可能是个初学者,但我知道这是我不应该得到的 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\

好了,现在有一个我问过的人都无法解开的谜团。我可能是个初学者,但我知道这是我不应该得到的

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);
     }
 }
在编译器跳过的错误注释导致如此令人震惊和困惑的谜团之前,我是否有错误

int客户菜单(字符注册(结构寄存器注册)) {


这不是一个有效的函数声明。也不清楚如何修复它。您希望这是什么意思?

您可能忘记了函数前面的右括号或圆括号;然后函数成为该块的一部分,直到编译器遇到不再是块的一部分的内容。是否使用编辑器匹配的大括号/圆括号突出显示?我只是尝试重新格式化你粘贴的代码,似乎@Evert是正确的,你的第二条注释似乎在一个块的末尾,我不明白你的意思。我知道我的语句哪里错了,但这不是重点。重点是它要求“;”afrter“,”但在“{”在我的if语句中。这才是真正让我感到困惑的地方。@kevinhay:可能是编译器和triplee一样混乱,当你解决这个问题时,另一个错误就会消失。谢谢。如果我在这里放的大部分内容,但现在唯一的事情是重新定义、不清楚的标识符和其他一些错误。