C语言fread函数

2016年4月22日 420 次阅读 0 条评论 0 人点赞

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

 

 

菜鸟

文章评论(0)