当前位置: 首页 > news >正文

【C语法学习】17 - fwrite()函数

文章目录

  • 1 函数原型
  • 2 参数
  • 3 返回值
  • 4 示例

1 函数原型

fwrite():将ptr指向的内存空间中储存的数据块写入与指定流stream相关联的二进制文件中,函数原型如下:

size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream)

2 参数

fwrite()函数有四个参数:

  1. 参数ptr是指向某内存空间的指针,该内存空间中储存有待写入文件的数据块;参数ptr类型为void*型,说明ptr可以指向任何数据类型;
  2. 参数size指定了每个待写入文件的数据项的字节大小,类型为size_t(unsigned int)型;
  3. 参数count指定了待写入文件的数据项的个数,类型为size_t(unsigned int)型;
  4. 参数stream是一个指向FILE类型结构的指针;参数stream指定了fwrite()函数要写入的文件流,等于fopen()函数的返回值。

3 返回值

fwrite()函数的返回值类型为size_t(unsigned int)型:

  1. 写入文件成功,返回成功写入文件的数据项个数,返回值应等于count;
  2. 写入文件失败,返回值小于count。

C语言标准描述如下:

1. fwrite returns the number of full items actually written, which may be less than count if an error occurs. 
2. Also, if an error occurs, the file-position indicator cannot be determined.

4 示例

以两种方式将数组中的内容写入二进制文件,代码如下所示:

#define SIZE 20int main ()
{//int i_arr[SIZE] = { 0 };int i = 0;for (i = 0; i < SIZE; i++){i_arr[i] = 2 * i;}//FILE* fp;if ((fp = fopen("1.dat", "wb")) == NULL){printf("Failed to open file.\n");exit(1);}//if ((fwrite(i_arr, sizeof(int), SIZE, fp)) != SIZE){printf("Failed to write file.\n");exit(1);}//if ((fwrite(i_arr, sizeof(i_arr), 1, fp)) != 1){printf("Failed to write file.\n");exit(1);}//fclose(fp);return 0;
}

代码运行结果如下图所示:

在这里插入图片描述
代码及运行结果分析:

  1. 第一次调用fwrite()函数,数组i_arr中的每个元素是一个数据项;
  2. 第二次调用fwrite()函数,数组i_arr整体是一个数据项。
http://www.lryc.cn/news/220057.html

相关文章:

  • CWE(Common Weakness Enumeration,通用缺陷枚举)
  • 华为政企视频会议产品集
  • IntelliJ IDEA 2022创建Maven项目
  • 有限域的Fast Multiplication和Modular Reduction算法实现
  • 第八章:security testing
  • Linux系统下一些配置建议整理
  • 【launch文件中如何启动gdb调试单个节点多个节点】
  • Unity中Shader的GI的直接光实现
  • JAVA进程和线程
  • 3.2-Docker Image概述
  • JS自定义深浅度克隆
  • MySQL之表的约束
  • Go基础——接口、并发
  • zookeeper本地部署和集群搭建
  • 优橙内推甘肃专场——5G网络优化(中高级)工程师
  • crontab 定时任务
  • 【入门Flink】- 03Flink部署
  • DockerFile常用保留字指令及知识点合集
  • 怎么批量删除文件名中的空格?
  • 回顾十大数据恢复软件,帮助用于恢复丢失的文件!
  • 【Linux】多路IO复用技术②——poll详解如何使用poll模型实现简易的一对多服务器(附图解与代码实现)
  • CSS 滚动捕获 Scroll Snap
  • 【带头学C++】----- 三、指针章 ---- 3.9 数组作为函数的参数
  • 完美处理 Android App 的 apk 输出路径与文件名
  • 【技术干货】开源库 Com.Gitusme.Net.Extensiones.Core 的使用
  • 大厂面试题-b树和b+树的理解
  • NeRF-SLAM部署运行(3060Ti)
  • 零基础编程入门教程软件推荐,零基础编程自学
  • Amazon EC2 安全可调用的云虚拟主机服务器
  • HTTP/HTTPS、SSL/TLS、WS/WSS 都是什么?