我对c ++很新,我正在使用eclipse。
但是......我不知道为什么我在主函数中出现这个错误:
错误::: main必须返回int
我的代码是:
void main()
{
char a;
while (a!='q')
{
string ln = "enter option: ";
cout<< ln;
switch(a)
{
case 1:
if (a=='1')
func1();
break;
case 2:
if (a=='2')
break;
break;
}
}
}
答案 0 :(得分:5)
因为在C ++中,main
函数的返回类型必须为int
。
返回类型为void
的版本不正确,编译器正在拒绝该版本。
只需更改
中的声明即可void main()
到
int main()
有一种替代形式允许您处理在命令行上传递给程序的参数。它看起来像这样:
int main (int argc, char *argv[])
但是当你刚刚学习C ++并尝试在屏幕上打印“hello world”时,这可能不是你需要担心的事情。你最终会到达那里。
考虑更新你正在使用的书来学习C ++。如果它导致入口点的函数签名错误,那么还有哪些更复杂的东西也会出错?!第一次学习语言错误没有意义。我们提供了建议书籍列表here。
答案 1 :(得分:2)
您必须将void main()
更改为int main()
。
如果没有C ++中的任何返回,你就不能有一个主函数。
答案 2 :(得分:2)
char a;
while (a!='q')
您正在将未初始化的变量与字母q进行比较。从未初始化的变量读取会调用未定义的行为。如果你运气不好,a!='q'
可能是假的。将char a;
更改为char a = 0;
(或任何其他非q值)或使用do-while循环替换while循环。
答案 3 :(得分:1)
返回类型应为int
:
int main (void)
int main (int argc, char *argv[])