【发布时间】:2018-02-06 19:56:14
【问题描述】:
我试图一次将一个文件读入一个字符串,但是我只能用这段代码逐行读取它:
int main()
{
char input[1000000];
FILE *fPointer;
fPointer = fopen("/Users/boys/users.json", "r");
if( fPointer != NULL)
{
while(!feof(fPointer))
{
fgets(input, 1000000, fPointer);
//printf("%s", input);
}
}
printf("%s", input);
return 0;
}
我正在处理一个 json 文件,过去只使用 csv 和更简单的文件和 c,因为我对它还是很陌生,而且不是那么好,所以如果有人有一个简单的解决方案来读取文件一次而不是一行一行,这将是一个很大的帮助,谢谢!
【问题讨论】:
-
如您所见,我尝试在循环之外打印文件内容,这表明我没有一次阅读它
-
打开文件,寻尾,获取文件位置(等于大小),回退文件位置,分配内存,读取文件到分配的内存。完成。
-
fread() 函数帮助你。用点和逗号分隔文本,很难理解
-
至于你目前的代码,我建议你花点时间阅读Why is “while ( !feof (file) )” always wrong?
-
while(!feof(fPointer))这不会像你想象的那样工作。