关于C语言文件操作

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:30:24
我想要用fread函数读取一个文件的内容:int fread(void *ptr, int size, int nitems, FILE *stream);
但,参数里面需要读入多少个字节。 我想要读整个文件,但不知道文件有多大,我应该怎么做呢? (不想要fgetc,判断EOF)

while (fread(buf, sizeof(*buf), 1, ifile)) {
/* do sth. */
}

注意该循环fread每次只读一个item,每个item的size是sizeof(*buf)。fread的返回值是成功读取的item的个数,可能小于或等于nitems。由于我们限制一次读一个,所以每次当fread成功读到一个item返回值就是1,对while来说就是条件为真,循环将继续,如果fread没能读到一个item(可能是遇到EOF或者出现了错误),返回值小于1则肯定为0,这时对while来说,条件为假,所以循环退出。如果你想知道fread退出究竟是遇到了EOF还是出错,你需要调用feof或者ferror来判断,具体参考库函数说明。

freopen("InputFileName","r",stdin);
while(scanf("%x",xxx)!=EOF)