我目前正在为我的班级使用Putty虚拟机(UNIX),我们正在做一个简短的C ++任务。任务是: "创建一个C ++程序,测试文件帐户是否存在并打印一条消息,说明该文件是否存在"
这就是我所拥有的,但是当我尝试编译代码时,我收到此错误: 错误:':: main'必须返回'int'
#include<iostream>
#include<fstream>
using namespace std;
inline bool exists_test1 (const std::string& name) {
if (FILE *file = fopen(name.c_str(), "r")) {
fclose(file);
return true;
} else {
return false;
}
}
void main()
{
string s;
cout<<"Enter filename";
cin>>s;
bool ans =exists_test1(s);
if(ans)
{
cout<<"File Exist"<<endl;
}
else
{
cout<<"File Does not Exist";
}
}
答案 0 :(得分:5)
main
的返回类型为int
。这是由C ++标准定义的。在我的C ++ 11草案的本地副本中,它在§3.6.1主要功能:
- 醇>
实现不应预定义主函数。此功能不应过载。 它的返回类型应为int类型,否则其类型为实现定义。所有实现都应允许以下两个main定义:
int main() { /* ... */ }
和
int main(int argc, char* argv[]) { /* ... */ }
因此,您的程序根据标准格式不正确,并且您的编译器正确地将其报告为错误。将您的功能定义为:
int main()
{
// your code...
return 0;
}