C语言fwrite()函数和fread()函数

来源:互联网 发布:淘宝代销怎么关联宝贝 编辑:程序博客网 时间:2024/04/28 16:03
fwrite()函数以二进制方式向文件流中写入数据,其原型为:
    size_t fwrite(void * buffer, size_t size, size_t count, FILE * stream);
【参数】buffer为数据源地址,size为每个单元的字节数,count为单元个数,stream为文件流指针。


fwrite()函数每次向stream中写入count个单元,每个单元大小为size个字节;文件流的位置指针后移 size * count 字节。


【返回值】返回成功写入的单元个数。如果小于count,则说明发生了错误,文件流错误标志位将被设置,随后可以通过ferror()函数判断。

如果 size 或 count 的值为 0,则返回值为 0,并且文件流的位置指针保持不变。


2.与fwrite()相对应的函数为fread(),fread() 和 fwrite() 一般用于二进制文件的输入输出,ASCII文件还是不要考虑了。
C语言中:fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,
如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。
函数原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
参数:buffer  用于接收数据的内存地址size  要读的每个数据项的字节数,单位是字节count  要读数据项的个数,
每个数据项size个字节.stream  输入流的指针返回值:返回实际读取的元素个数。如果返回值与count不相同,
则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。

#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,"Cannot open output file.\n");        return 0;    }    fwrite(msg,1,strlen(msg)+1,stream);    fseek(stream,0,SEEK_SET);    fread(buf,strlen(msg)+1,1,stream);    printf("%s \n",buf);    fclose(stream);    return 0;}


0 0
原创粉丝点击