我无法找出错误 "expected ";“在顶级指标之后。”

I,m unable to figure out the error "expected ";" after top-level indicator."

我无法找出错误 “预期”;“在顶级指标之后”[=1​​7=]。我无法理解错误。

错误 test.c:5:15: 错误:应为 ';'在顶级声明符之后 int 主要(无效) ^ ; 致命错误:发出的错误太多,现在停止 [-ferror-limit=] 产生了 2 个错误。 make: *** [: test] 错误 1

#include<stdio.h>
#include<cs50.h>
#include<string.h>

int main(void)
string username;


typedef struct
{
   string name;
   string number;
}
phnbk;

{
   phnbk contact[2];
   contact[0].name = "david";
   contact[0].number = "123456789";

   contact[1].name = "victor";
   contact[1].number = "9987654321";

   username = get_string("enter your name: ");

    for(int i = 0 ; i < 2; i++)
    {
        if(strcmp(contact[i].name,username) == 0)
        {
            printf("your number is %s" , contact[i].number);
        }
    }
}

Functions cannot be defined without braces ({})。 main() 也不例外,这是导致错误的原因。

因此,您必须像这样定义您的主要功能:

int main(void)
{
    string username;
}

您稍后在 {} 中有另一个代码块,在任何函数之外,这是不允许的(需要引用)。您可能打算将该代码包含在 main() 中,如下所示:

#include<stdio.h>
#include<cs50.h>
#include<string.h>

typedef struct
{
   string name;
   string number;
}
phnbk;

int main(void)
{
   string username;
   phnbk contact[2];
   contact[0].name = "david";
   contact[0].number = "123456789";

   //Other main() stuff

}

main 函数必须在 {} 内 类似于:

string username;
typedef struct
{
   string name;
   string number;
}
phnbk;
    
int main(void)
{
   phnbk conta      
   ....