我是C新手,我只是想读取我在C中创建的简单文本文件。我通过单击新建 - >空文件 - >保存它到我想要的位置,然后添加文件扩展名(.txt),文本文件包含样本数独板,完整文件名为sudokuchar.txt。如何从文本文件中读取我在C中创建
我从文件中读取和打印的代码是:
#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'将返回NULL。没有检查,而是错误地认为它刚刚工作,传递NULL作为文件指针到'fgets',然后调用* undefined behavior *。它似乎有一些错误检查和运行时启动配置更改是按顺序。 – WhozCraig
那么我如何将文件保存到活动的工作目录? – katDouglas
另请注意,'main()'是类型为'int'的函数,并且应该在退出时返回0或正8位*值(例如'return 0;'如果没有错误, 255'错误)。还要注意,'main'的正确声明是'int main(void){...'或'int main(int argc,char * argv []){...'(您会看到相同的'char ** argv'而不是'* argv []',并且还有一些编译器接受的其他非可移植参数)。这不会导致读取失败(最可能出现'fopen'失败),但获得正确的基础帮助。 –