我如何摆脱这些错误?它应该根据您的出生年份来计算您的年龄。 这段代码是由我和我的朋友编写的,我们俩都是编程的开始。
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int nNumberofargs, char* pszArgs[]);
int CurrentYear = 2020;
int BirthYear;
cout << "Enter your birth year: "
cin >> BirthYear;
if (nBirthYear <= 0)
{
cout << "Birth year cannot be processed" <<endl;
BirthYear = 2020
}
else (BirthYear > 2020)
{
cout << "Birth year cannot be processed " <<endl;
BirthYear = 2020
}
if (nBirthYear < 2020)
(cout << "Your age is : " << CurrentYear - BirthYear <<endl;
)
cout << "Press Enter to continue..." << endl;
cin.ignore(10, '\n');
cin.get();
return 0;
这些是错误
||=== Build: Debug in Actualagefinder (compiler: GNU GCC Compiler) ===|
H:\c++\Actualagefinder\main.cpp|13|error: 'cout' does not name a type|
H:\c++\Actualagefinder\main.cpp|16|error: expected unqualified-id before 'if'|
H:\c++\Actualagefinder\main.cpp|21|error: expected unqualified-id before 'else'|
H:\c++\Actualagefinder\main.cpp|26|error: expected unqualified-id before 'if'|
H:\c++\Actualagefinder\main.cpp|28|error: expected unqualified-id before ')' token|
H:\c++\Actualagefinder\main.cpp|30|error: 'cin' does not name a type; did you mean 'main'?|
H:\c++\Actualagefinder\main.cpp|31|error: 'cin' does not name a type; did you mean 'main'?|
H:\c++\Actualagefinder\main.cpp|32|error: expected unqualified-id before 'return'|
||=== Build failed: 8 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
答案 0 :(得分:2)
在C ++中,所有执行的代码都必须在函数内。
即它应该看起来像
int main(int nNumberofargs, char* pszArgs[])
{
/* code */
}
您从原型开始,然后是孤立的代码。
int main(int nNumberofargs, char* pszArgs[]);
/* code */
这就是为什么编译器抱怨期望(用于声明的)已知类型的原因,在该类型中,您的代码行以cout
开头(您不会无理地希望已被声明)。
其他行(不一定是语句)可以是局部或全局变量定义,后者可能在函数外部。这就是为什么编译器不抱怨它们的原因。
答案 1 :(得分:0)
您需要解决的第一个问题是int main()
声明。通过使用分号int main(int nNumberofargs, char* pszArgs[]);
,您将告诉编译器它已经到达命令的末尾,而不执行任何操作。要解决此问题,就像在if
语句中一样,必须将所有内容封装在大括号后的声明中。
因此,您的程序变为:
#include <cstdio>
#include <cstdlib>
#include <iostream>
int main(int nNumberofargs, char* pszArgs[])
{
// Put your stuff in curly braces
}
您的下一个错误是在您的if
语句中。简而言之,if
语句在C ++中的工作方式不一样。
if
语句应为:
if(something){
// Do something here
}
else if(something else){ // If there are more than one possible condition, use else if
// Do something else
}
else{ // If none other condition is satisfied
// Do something
}
请注意,您不能两次拥有if
(如果您嵌套了if
语句(例如if
语句内的if
语句,则可以)
这些是程序中的主要问题。其余都是小错误。例如,在许多地方缺少;
。在其他地方,您调用未声明的变量:
if (nBirthYear < 2020) // This was probably a typo, nBirthYear is not declared
在一个地方,您有一个(
这是一个错字:(cout << "Your age is : " << CurrentYear - BirthYear <<endl;
此外,还有一些不必要的代码,例如前两行(未使用)。
尽管如此,这是程序的有效版本:
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int nNumberofargs, char* pszArgs[]){
int CurrentYear = 2020;
int BirthYear;
cout << "Enter your birth year: " << endl;
cin >> BirthYear;
if (BirthYear <= 0)
{
cout << "Birth year cannot be processed" <<endl;
BirthYear = 2020;
}
else if(BirthYear > 2020)
{
cout << "Birth year cannot be processed " <<endl;
BirthYear = 2020;
}
else if (BirthYear < 2020){
cout << "Your age is : " << CurrentYear - BirthYear << endl;
}
cout << "Press Enter to continue..." << endl;
cin.ignore(10, '\n');
cin.get();
return 0;
}
正如评论所说,建议再次查看用于制作此程序的资源,您必须 降低基础知识。确保您知道程序的每个部分的功能,并添加注释以提醒自己将来。我会尽力使这个答案简明扼要,以帮助您理解,但您确实应该回顾一下已读过的内容。
另外,请确保您的资源相对较新,因为自创建以来C ++发生了很多变化。