C语言二进制文件读写,c语言读取二进制文件并输出
Fwrite函数
头文件
原型
解释
返回值
#包含stdio.h
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE * stream);
将ptr指向的数组中长度为size的最多nmemb个元素写入stream指向的流中。如果定义了流的文件位置指示符,它将向前移动成功写入的字符数。当错误发生时,该流的文件位置指示符的值是不可预测的。
返回成功写入的元素数。当仅发生写入错误时,元素的数量将小于nmemb。
弗雷德函数
头文件
原型
解释
返回值
#包含stdio.h
size_t fread(const void *ptr,size_t size,size_t nmemb,FILE * stream);
从stream指向的流中最多读取长度为size的nmemb个元素到ptr指向的数组中。如果定义了流的文件位置指示符,它将向前移动成功读取的字符数。当错误发生时,该流的文件位置指示符的值是不可预测的。当元素的一部分是只读的时,值是不可预测的。
返回成功读取的元素数。当发生读取错误或到达文件末尾时,元素的数量将小于nmemb。如果size或nmemb为0,则返回0。此时,数组的内容和流的状态不会改变。
Fwrite函数和fread函数
这两个函数将接收4个参数:
第一个参数:读写数据的第一个地址的指针。第二个参数:数据长度,第三个参数:数据个数,第四个参数:读写对象流的指针。PI.bin文件:
#包含stdio.h
int nbsp。主要(无效){
文件nbsp。* fp
双nbsppi nbsp=nbsp3.14159265358979323846;
printf(quot;从变量pi得到的pi是# .21f,\ n quot,nbsp。pi);
如果nbsp。((fp nbsp=nbspfopen(quot;PI.bin quot,nbsp。quotwb quot))nbsp==nbspNULL){
printf(quot;文件打开失败。\ n quot);nbsp
} nbsp否则nbsp。{
fwrite(amp;pi,nbspsizeof(double),nbsp。1、nbspFP);
fclose(FP);
}
如果nbsp。((fp nbsp=nbspfopen(quot;PI.bin quot,nbsp。quotrb quot))nbsp==nbspNULL){
printf(quot;文件打开失败。\ n quot);nbsp
} nbsp否则nbsp。{
fread(amp;pi,nbspsizeof(double),nbsp。1、nbspFP);
printf(quot;从文件中读取的pi是# .21f,\ n quot,nbsp。pi);
fclose(FP);nbsp
} nbsp
返回nbsp。0;
}运行结果:
fwrite(amp;pi,nbspsizeof(double),nbsp。1、nbspFP);
fread(amp;pi,nbspsizeof(double),nbsp。1、nbspFP);第二个参数sizeof(double)指定double的长度,第三个参数指定要读写的变量个数为1。
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。