#include <stdio.h>
main(void) {
file *file = fopen("words.txt","r")
if(file != null) {
char line[128];
while(fgets( line, sizeof line, file) != null)
{
fputs ( line, stdout );
}
fclose ( file );
}
}
这是我的代码。即时尝试读取文件,并输出内容。 但这给了我错误代码
main.c: In function 'main':
main.c:4: error: 'file' undeclared (first use in this function)
main.c:4: error: (Each undeclared identifier is reported only once
main.c:4: error: for each function it appears in.)
main.c:5: error: parse error before "if"
main.c:7: error: 'line' undeclared (first use in this function)
main.c:7: error: 'null' undeclared (first use in this function)
main.c: At top level:
main.c:13: error: parse error before '}' token
main.c:13:2 warning: no newline at end of file
我该如何解决这个错误。
答案 0 :(得分:9)
错误地写入了FILE和NULL(C区分大小写)。 fopen line缺少分号。
以下代码编译并运行。
#include <stdio.h>
main(void) {
FILE *file = fopen("words.txt","r");
if(file != NULL) {
char line[128];
while(fgets( line, sizeof line, file) != NULL)
{
fputs ( line, stdout );
}
fclose ( file );
}
}
答案 1 :(得分:3)
以下工作正常,并且在函数调用和定义以及循环/ ifs中使用一致的大括号和空格进行了清理。它也适用于C,如果这是你的标签意图,并打印错误,如果无法打开文件则返回1.
#include <stdio.h>
#include <errno.h>
int main (void) {
char line[128];
FILE *file = fopen ("words.txt", "r");
if (file != NULL) {
while (fgets (line, sizeof line, file) != NULL) {
fputs (line, stdout);
}
fclose (file);
} else {
fprintf (stderr, "Cannot open 'words.txt', error = %d\n", errno);
return 1;
}
return 0;
}
答案 2 :(得分:2)
尝试大写FILE
。
答案 3 :(得分:2)
除了已经指出的其他内容之外,您的main()
函数应该被指定为返回int
,并且最后应该明确地这样做。另外,我不太了解你的缩进和包围风格。
#include <stdio.h>
int main(void)
{
FILE *file = fopen("words.txt","r");
if(file != NULL)
{
char line[128];
while(fgets( line, sizeof line, file) != NULL)
{
fputs ( line, stdout );
}
fclose ( file );
}
return 0;
}
或者,如果文件没有打开,你可以使它return 1;
(UNIX上的错误代码通常不为零):
#include <stdio.h>
int main(void)
{
FILE *file = fopen("words.txt","r");
if(file != NULL)
{
char line[128];
while(fgets( line, sizeof line, file) != NULL)
{
fputs ( line, stdout );
}
fclose ( file );
return 0;
}
else
{
return 1;
}
}
答案 4 :(得分:1)
编辑两次,因为编辑错了。糟糕。
答案 5 :(得分:1)
文件类型在stdio.h中定义,必须是全大写(FILE)。简单的错误。