您的位置:首页 > 编程语言 > C语言/C++

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

2017-04-25 14:51 731 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: