fwrite()函数以二进制方式向文件流中写入数据,其原型为:
size_t fwrite(void * buffer, size_t size, size_t count, FILE * stream);
【参数】buffer为数据源地址,size为每个单元的字节数,count为单元个数,stream为文件流指针。
fwrite()函数每次向stream中写入count个单元,每个单元大小为size个字节;文件流的位置指针后移 size * count 字节。
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;
}