我再继续做那个课程表程序,既然有了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;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容