C语言 二进制文件读取和写入
程序员文章站
2022-03-07 20:19:49
fwrite函数头文件原型说明返回值#include size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);从ptr指向的数组中将最多nmemb个长度为size的元素写入stream指向的流中。若定义了流的文件位置指示符,则以成功写入的字符数为单位向前移动。当发生错误时,该流的文件位置指示符的值不可预测。返回成功写入的元素个数。仅当发生写入错误时,元素个数会...
fwrite函数
头文件 | 原型 | 说明 | 返回值 |
---|---|---|---|
#include <stdio.h> | size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); | 从ptr指向的数组中将最多nmemb个长度为size的元素写入stream指向的流中。若定义了流的文件位置指示符,则以成功写入的字符数为单位向前移动。当发生错误时,该流的文件位置指示符的值不可预测。 | 返回成功写入的元素个数。仅当发生写入错误时,元素个数会少于nmemb。 |
fread函数
头文件 | 原型 | 说明 | 返回值 |
---|---|---|---|
#include <stdio.h> | size_t fread(const void *ptr, size_t size, size_t nmemb, FILE *stream); | 从stream指向的流中最多读取nmemb个长度为size的元素到ptr指向的数组。若定义了流的文件位置指示符,则以成功读取的字符数为单位向前移动。当发生错误时,该流的文件位置指示符的值不可预测。只读取到某一元素的部分内容时,值不可预测。 | 返回成功读取的元素个数。当发生读取错误或达到文件末尾时,元素个数会少于nmemb。若size或nmemb为0,则返回0.这时数组内容和流的状态都不发生变化。 |
fwrite函数 和 fread函数
这两个函数会接收4个参数:
- 第一个参数:指向读写数据的首地址的指针。
- 第二个参数:数据的长度
- 第三个参数:数据的个数
- 第四个参数:指向读写对象的流的指针。
PI.bin文件:
#include <stdio.h>
int main(void){
FILE *fp;
double pi = 3.14159265358979323846;
printf("从变量pi得到的圆周率为%23.21f。\n", pi);
if ((fp = fopen("PI.bin", "wb")) == NULL){
printf("文件打开失败。\n");
} else {
fwrite(&pi, sizeof(double), 1, fp);
fclose(fp);
}
if ((fp = fopen("PI.bin", "rb")) == NULL){
printf("文件打开失败。\n");
} else {
fread(&pi, sizeof(double), 1, fp);
printf("从文件读取的圆周率为%23.21f。\n", pi);
fclose(fp);
}
return 0;
}
运行结果:
fwrite(&pi, sizeof(double), 1, fp);
fread(&pi, sizeof(double), 1, fp);
第二参数 sizeof(double) 指定了 double型的长度,第三个参数指定了要读写的变量个数为 1个。
本文地址:https://blog.csdn.net/qq_44989881/article/details/107300840
上一篇: java基础回顾之线程---定时器
下一篇: 简单马踏棋盘设计(C++)
推荐阅读
-
php实现读取和写入tab分割的文件
-
c# 以二进制读取文本文件
-
IOS UI学习教程之区分NSBundle和NSURL(读取文件、写入文件)
-
PHP 文件写入和读取操作实例详解【必看篇】
-
C# 创建,读取,写入XML文件
-
C语言向txt文件写入当前系统时间(Log)
-
C#实现xml文件的读取与写入简单实例
-
Pandas基础(文件读取与写入、Series和Dataframe、常用基本函数、排序)
-
php实现读取和写入tab分割的文件
-
C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换(第二版-增加深度读取和更新功能)