我是C的新手,我只是想读取我在C中创建的一个简单的文本文件。我通过点击new->empty file->将其保存到我想要的位置,然后添加文件扩展名(.txt)来创建这个文件。文本文件包含一个示例数独板,完整的文件名为sudokuchar.txt。
我必须从文件中读取并打印的代码是:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fpointer = fopen("sudokuchar.txt", "r");
char input[100];
while(fgets(input,100,fpointer))
{
printf("%s",input);
}
fclose(fpointer);
}
因此,当我编译时,程序不打印任何内容,并返回-1。我想我试图从中读取的文件出了问题??如果有人能帮忙,我们将不胜感激。
始终检查fopen
和其他标准库调用的返回值。很可能你的文件不存在。您可以使用errno生成一个用户友好的错误消息,只需确保包含errno.h。总体而言,您的代码应该可以工作,但您需要检查事物的返回值,因为如果fopen
找不到文件,它将返回NULL。
FILE *fpointer = fopen("sudokuchar.txt", "r");
if(fpointer == NULL) {
fprintf(stderr, "Error: [Errno %d]: %sn",
errno, strerror(errno));
return 1;
}
建议检查返回的文件指针。如果文件指针返回0或NULL,则文件指针无法指向您提供的文件名。你也可以使用这个
File *fp = fopen(file name with full path (i.e. /home/chex/read.txt),"r")
检查man fopen
FILE*fopen(const char*路径,const char*mode);