ps:fread的第三个参数需为读取文件内容的实际大小,我之前因为设置得太大,导致读取错误。
#include <stdio.h>
int main() {
FILE* fp;
int file_size; //保存文件字符数
char* tmp; //将文件内容读到此指针位置
fp = fopen("./json_string.json", "r"); //打开文件
fseek(fp, 0, SEEK_END); //将文件指针指向该文件的最后
file_size = ftell(fp); //根据指针位置,此时可以算出文件的字符数
printf("文件字符数为 %d\n", file_size);
tmp = (char*)malloc(file_size * sizeof(char)); //根据文件大小为tmp动态分配空间
memset(tmp, '\0', file_size * sizeof(char)); //初始化此控件内容,否则可能会有乱码
fseek(fp, 0, SEEK_SET); //重新将指针指向文件首部
fread(tmp, sizeof(char), file_size, fp); //开始读取整个文件
printf("文件内容为\n%s", tmp);
return 0;
}
版权声明:本文为CSDN博主「Dontla」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dontla/article/details/126288249