预期的标识符或 C 中的“(”

expected identifier or '(' in C

我最近开始在 Edx 上学习 CS50 课程。我被困在第二个问题集上,因为当我尝试编译我的代码时,出现了这条消息:

expected identifier or '(' in C

如果你需要我的代码,这里是:

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

int main (int argc, string argv[])

int key;

{

    if (argc != 2)
    {
        printf("error\n");
    }
    else
    {
        key = atoi(argv[1]);

        if (key == 0 || key < 0)
        {
            printf("error");
        }
        else
        {
            printf("%i\n", key);
        }
    }
}

如果我的代码还有什么问题,你能帮我提示一下吗?

int main (int argc, string argv[])
{
  int key;

需要在括号内

您的代码应如下所示:

int main (int argc, string argv[])
{            // <-- every function definition begins with {
    int key;

    if (argc != 2)
    {
        printf("error\n");
    }
    else
    {
        key = atoi(argv[1]);

        if (key == 0 || key < 0)
        {
            printf("error");
        }
        else
        {
            printf("%i\n", key);
        }
    }
}

您的问题是一个简单的打字错误,因此应该关闭它。我发布了完整的代码,因为我无法在单个评论中显示它。

将声明 int key 移到 main 的括号内。

然后将main的string argv[]参数改为char* argv[]string argv[] 对于 main 签名根本不正确。

您还需要包括 stdio.h 和 stdlib.h。

您的代码如下所示:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char* argv[])
{
    int key;

    if (argc != 2)
    {
        printf("error\n");
    }
    else
    {
        key = atoi(argv[1]);

        if (key == 0 || key < 0)
        {
            printf("error");
        }
        else
        {
            printf("%i\n", key);
        }
    }
}

已通过 Coliru

验证