错误:预期的不合格 ID 错误:含义和修复?

4 c++ compiler-errors

我刚刚学习 C++,刚从 python3 和 QBASIC 出来,并且很难阅读编译器错误并理解它们,这使得调试变得困难。

\n\n

我遇到的问题是我不断拉出编译错误:

\n\n

错误:预期的不合格 ID

\n\n

这发生在第 10 行和第 18 行。

\n\n

我正在尝试使用 linuxs\' g++ 编译这个程序:

\n\n
g++ proto.cpp -o prototype\n
Run Code Online (Sandbox Code Playgroud)\n\n

该程序的代码如下。

\n\n
#include <iostream>\n#include <string>\nusing namespace std;\n//Declaring Functions\n\n//Trouble Function\nint mult ( double x, double y );\n{\n    return x * y;\n}\n\n//Trouble Function\nint dive ( double x, double y );\n{\n    if ( y == 0 )\n    {\n        cout<<"Error, cannot divide by zero.\\n";\n        return;\n    }\n    else\n    {\n        return x / y;\n    }\n}\n\n//This error doesn\'t occur beyond this point.\nint plus ( double x, double y );\n{\n    return x + y;\n}\nint min ( double x, double y );\n{\n    return x - y;\n}\n//End of global declarations.\n//I would have made them local functions if not\n//for an entirely set of unrelated problems.\n\nint main()\n{\n    cout<<"Please enter two numbers.\\n"<<"\\n";\n    int num1;\n    int num2;\n    cin>>num1;\n    cin>>num2;\n    string returnz = "<unknown>";\n    while ( returnz != "no" )\n    {\n        cout<<"What would you like to do with the numbers>\\n";\n        cout<<\'\\n\'<<"Enter ( mult ) to multiply, ( min ) to subtract, ( plus ) to add, and ( dive ) to divide.\\n";\n        getline( cin, returnz, \'\\n\' );\n        if ( returnz == "mult" )\n        {\n            double result = mult ( num1, num2 );\n            cout<<num1<<" * "<<num2<<" = "<<result<<"\\n";\n            continue;\n        }\n        else if ( returnz == "dive" )\n        {\n            double rest = dive ( num1, num2 );\n            cout<<num1<<" / "<<num2<<" = "<<rest<<"\\n";\n            continue;\n        }\n        else if ( returnz == "plus" )\n        {\n            double res = plus ( num1, num2 );\n            cout<<num1<<" + "<<num2<<" = "<<res<<"\\n";\n            continue;\n        }\n        else if ( returnz == "min" )\n        {\n            double re = min ( num1, num2 );\n            cout<<num1<<" - "<<num2<<" = "<<re<<"\\n";\n            continue;\n        }\n        else\n        {\n            break;\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

目标是允许用户输入几个数字,然后让他们选择在该数字上使用指定的运算符。

\n\n

请注意,我是这种语言的新手,因此它可能充满语法错误和不一致。但问题是,为什么这两个(而不是其他)会提取不合格的 id,这意味着什么,以及如何解决这个问题。

\n\n

我在这里问是因为我想独立学习这个,因此我也没有导师或同伴可以求助。关于如何在更有效的代码中完成此操作的建议也很受欢迎,并且将不胜感激。

\n\n

谢谢。

\n\n

终端中出现的错误:

\n\n
proto.cpp:10:1: error: expected unqualified-id before \xe2\x80\x98{\xe2\x80\x99 token\n{\n^\n\nproto.cpp:18:1: error: expected unqualified-id before \xe2\x80\x98{\xe2\x80\x99 token\n{\n^\n
Run Code Online (Sandbox Code Playgroud)\n

Car*_*Now 5

正如 @user657267 所说,在声明函数及其实现时去掉分号。如果你有

int some_function(int a, int b);
Run Code Online (Sandbox Code Playgroud)

在 main 之上以及该函数在 main 之下的实现

int some_function(int a, int b) {
    //something happens here
     return a;
}
Run Code Online (Sandbox Code Playgroud)

那就可以了。实现也可以高于主函数,这样您就不必编写定义函数的第一行。定义或实现必须高于 main 的原因是 c 或 c++,否则将无法看到该函数,否则也会引发错误。