概括
我正在尝试创建一个将文件内容转换为字符串的程序。
我fseek
到文件的末尾然后ftell
找到长度以便将长度用于fread
.
问题是,我必须fseek
回到文件的开头才能从头开始读取,否则它将从文件的末尾开始读取,这显然是一个问题。
问题是,rewind()
由于某种原因,使用返回错误。
请注意,rewind()
从我的代码中删除该行允许它在没有错误的情况下运行,但 (null) 会打印,因为它是从文件末尾读取的。这就是为什么我假设rewind()
是问题所在。
代码
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE* dictionary = fopen("test.txt", "r");
fseek(dictionary, 0, SEEK_END);
int len = ftell(dictionary);
rewind(dictionary);
char* txt;
fread(txt, len+1, 1, dictionary);
printf("%s", txt);
}
错误信息
shell returned 139