我使用的fread函数似乎没有将内容存储在缓冲区中。每当我尝试打印缓冲区时,我什么也得不到。
如何解决这个问题?
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE* ptr1 = fopen("try.txt","r");
int count = 0;
while(fgetc(ptr1) != EOF)
{
count++;
}
char* buffer = malloc(sizeof(char)*count);
fread(buffer,sizeof(char),count, ptr1);
printf("%s",buffer);
fclose(ptr1);
free(buffer);
}
答案 0 :(得分:0)
在 fgetc()之后使用快退()功能,该功能将文件位置设置为给定流文件的开头。像,
rewind(ptr1);
答案 1 :(得分:0)
当你计算文件中的字符时,你正在将fpos指针移动到EOF。 然后,您正在尝试读取计算的字符数,如果没有倒回到文件的开头是不可能的。 你必须使用倒带。