我再继续做那个课程表程序,既然有了fwrite就会有fread,下面我就把我整理的fread函数的相关用法和注意事项,分享给大家。
fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。
函数原型:size_t fread(void* buff,size_t size,size_t count,FILE* stream)
作用:从文件中读入数据到指定的地址中
参数:第一个参数为接收数据的指针(buff),也即数据存储的地址
第二个参数为单个元素的大小,即由指针写入地址的数据大小,注意单位是字节
第三个参数为元素个数,即要读取的数据大小为size的元素个素
第四个参数为提供数据的文件指针,该指针指向文件内部数据
返回值:读取的总数据元素个数
例:
int num,count;
int* pr=new int[num*count];
fread(pr, num*4, count, stream); // stream为fopen中返回的FILE指针
要将数据写入pr中,必须为pr分配内存,一个int为4个字节,所以要x4
代码分享
#include<stdio.h>
#include<string.h>
int main(void)
{
FILE*stream;
char msg[]="this is a test";
char buf[20];
if((stream=fopen("DUMMY.FIL","w+"))==NULL)
{
fprintf(stderr,"Can not open output file.\n");
return 0;
}
/*write some data to the file*/
fwrite(msg,strlen(msg)+1,1,stream);
/*sizeof(char)=1 seek to the beginning of the file*/
fseek(stream,0,SEEK_SET);
/*read the data and display it*/
fread(buf,strlen(msg)+1,1,stream);
printf("%s\n",buf);
fclose(stream);
return 0;
}
文章评论