我再继续做那个课程表程序,既然有了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; }
文章评论