#include <stdio.h>
int read_next_line()
{
int ch;
int flag=0;
ch=getchar();
while(ch!= EOF && ch!='\n') {
ch=getchar();
flag=1;
}
return flag || (ch=='\n');
}
int read_all_lines()
{
int linecount=0;
int isvalid;
while(!feof(stdin)) {
isvalid=read_next_line();
linecount=linecount + isvalid;
}
return linecount;
}
main {
read_all_lines();
}
上面的代码给出了一个错误,指出main没有类型。 如何解决问题?
答案 0 :(得分:4)
template <typename T>
class Base {
...
inline Base();
inline void display();
inline T sum();
};
// definitions...
是一个像其他函数一样返回值的函数。如果没有返回main
或void main(void){ }
值,则由您自行决定,如果没有遇到错误,则在POSIX系统中返回int
。更复杂但可读性更强的是0
。
exit(EXIT_SUCCESS);
答案 1 :(得分:1)
大多数环境中适当的原型是:
int main(int argc, char *argv[])
这意味着:
main()
是一个返回int
。argc
的参数,它是命令行参数的数量。argv
的参数,它是这些参数的数组。答案 2 :(得分:0)
它应该是int main()
而不是简单的
答案 3 :(得分:0)
因为C98我认为,C不允许声明一个函数而不再使用返回类型的结果。你必须将main声明为
int main ()
{
...
}
这是使您的代码可编辑的最低要求。在以前的C语言版本中,允许声明一个像你所做的功能。隐含地,编译器认为它是一个int
函数而没有任何抱怨。但是,为确保您的编译器配置为编译后C98或更高版本的代码,它会引发错误。以前版本的实际编译器通常会发出警告,告诉您main
将被假定为int
函数,这是为了能够编译旧前ANSI代码
顺便说一下,下次不要限制自己来解释你编码的内容。在这里剪切并粘贴你的实际代码,以及你从编译器得到的确切错误(可能,这只是一个警告,但你没有包含它,所以我们永远不会知道)可能错误是不是你想到的地方,这样可以节省我们的时间,而且你需要接受这个投诉。