`
linkmm
  • 浏览: 30382 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

fwrite的参数之小研究

阅读更多
fwrite大家都知道,是Runtime Library里面写文件的一个函数。

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


昨天改一段C++代码,看见里面有如下的一段:
char* content = "........";
FILE* ptr = .....;
....
....
fwrite( content, strlen(content), 1, ptr);


觉得有点奇怪,那个1是干嘛的?于是看了一下MSDN,发现

buffer
Pointer to data to be written.

size
Item size in bytes.

count
Maximum number of items to be written.

stream
Pointer to FILE structure.


原来如此。看来size和count是为了输出一个数组用的。size应该是每个“元素”的大小,而count应该是输出多少个元素。
那么,对于上面那段代码,由于输出的实际上是个字符串,那么其元素就是单个字符,数量则是字符串的长度。于是,应该改成
fwrite(content, sizeof(char), strlen(content), ptr);

这样就比较符合逻辑了。
分享到:
评论

相关推荐

    算法初阶.rar fwrite

    在学习和研究计算机科学时,算法扮演着至关重要的角色,它是解决问题和设计程序的基础。对于初学者来说,理解并掌握基本的算法是迈入这个领域的第一步。在“算法初阶”这一主题中,我们将会探讨一个常用的数据处理...

    研究生初试录取管理系统

    - 文件操作通常涉及到文件指针的使用,例如 `FILE* fp` 用于指向一个文件,通过调用 `fopen()` 打开文件后,可以使用 `fwrite()` 和 `fread()` 分别进行写入和读取操作。 #### 2.3 输入/输出流 - 在这个系统中,`...

    西南交大 2014年通信研究生复试上机C语言答案

    标题中的“西南交大 2014年通信研究生复试上机C语言答案”表明了这是一个与2014年西南交通大学通信工程专业研究生入学复试相关的C语言编程考试的解答集。这类考试通常会考察考生对C语言基础知识、数据结构、算法设计...

    川大研究生复试C语言

    - 例题5中给出了几个常用的缓冲文件系统函数,如`putchar()`、`fread()`和`fwrite()`等。 - **函数的选择与使用**:在选择合适的文件读写函数时,应考虑数据类型、读写模式等因素。 #### 应用实例: - 使用`fread...

    基于MATLAB图像压缩的研究.rar

    在MATLAB中,我们可以先对图像进行小波分解,然后根据需要选择保留的系数,最后再进行重构。 ```matlab image = imread('example.png'); [cA, cH, cV, cD] = wavedec2(image, 3, 'db4'); % 仅保留高频系数的10% ...

    linux下的自己开发的小工具

    通过研究这些小工具,我们不仅能了解具体的实现方式,还能深入理解Linux系统的工作原理,提升我们的编程技能和解决问题的能力。同时,参与开源社区,分享和学习他人的代码,也是提升自身技能的有效途径。

    基于Matlab GUI的超声电机控制系统串口通信研究.zip

    在本研究中,Matlab GUI被用来设计超声电机控制系统的操作界面,用户可以借此设定参数、启动和停止电机,以及监控系统状态。 超声电机是一种利用超声波振动来实现驱动的特殊电机。它们具有高速、高精度和响应快速等...

    Matlab对硬件端口采集的研究

    你需要指定端口号、波特率、数据位、停止位以及校验位等参数,确保与设备的通信协议匹配。 2. **打开端口**:创建Serial对象后,使用`fopen`函数打开选定的端口。这一步骤是建立硬件连接的关键,确保Matlab能够向...

    C语言小项目代码大全.一些小游戏及管理系统

    9. **函数设计**:每个代码项目都会包含多个函数,这涉及到函数的参数传递、局部与全局变量的使用,以及函数的调用顺序和作用域规则。 10. **编译与调试**:学会使用编译器(如GCC)将源代码编译成可执行文件,并...

    matlab 100个小程序

    《MATLAB 100个小程序详解:编程实践与应用指南》 MATLAB,全称“Matrix Laboratory”,是一种强大的数值...无论是学术研究还是工程应用,MATLAB都是一个不可或缺的工具,这些小程序将助你在MATLAB的世界中游刃有余。

    注册表查询器 c语言研究使用

    【注册表查询器 c语言研究使用】 注册表查询器是一种应用程序,它允许用户查询和查看计算机注册表中的信息。在Windows操作系统中,注册表是存储系统设置和应用程序配置的关键数据库。通过C语言来编写这样的查询器,...

    基于Matlab GUI的串口通信编程

    在 Matlab 中,可以使用多种函数来实现串口通信,例如 fread 函数实现从串口读入二进制数据,fwrite 函数实现向串口写入二进制数据,fprintf 函数实现向串口写入文本数据等。同时,Matlab 也提供了多种函数来实现...

    c语言之语法代码集,文件操作 数组 指针 结构体 共同体

    6. **大小端转换**:在多字节数据类型中,如整型和浮点型,数据在内存中的存储顺序可能因处理器架构而异,分为大端模式和小端模式。理解大小端概念并能进行转换是跨平台编程的关键。 7. **数据交换**:C语言中常见...

    C开发小案例

    初学者会学习如何定义、调用函数,以及理解参数传递和返回值的概念。 3. **指针**:C语言中的指针是其强大之处,但也是初学者的难点。案例可能会包含如何声明、初始化和操作指针,以及理解指针与数组、函数的关系。...

    文件加密小程序VC++

    为了学习这个小程序,你需要理解C++的文件I/O操作,如`fopen`、`fread`、`fwrite`等函数,以及加密算法的原理。同时,了解如何在C++中管理内存和处理二进制数据也是必要的。 此外,为了增强安全性,实际应用中还...

    差分进化算法c#源代码

    如果你不需要这个功能,可以通过注释掉相应的代码行(如`fwrite1 = new FileWrite(fileLoc);`)来忽略。 源代码的阅读和理解需要具备C#编程基础以及对差分进化算法的理解。通过阅读源码,你可以学习到如何在C#中...

    c-projects:小型C项目研究建议

    "c-projects:小型C项目研究建议" 提供了一系列实践性的练习,旨在帮助开发者加深对C语言的理解,提高解决问题的能力。以下是对这个项目的详细分析和相关知识点的讲解: 1. **基础语法与结构**:C语言以其简洁而强大...

    一种利用MATLAB软件和安捷伦E4438C仪器产生自定义信号的方法.zip

    可以使用MATLAB的`fwrite`函数将数据写入文件。 接下来,我们要利用安捷伦E4438C来播放由MATLAB生成的信号。这通常包括以下步骤: 1. **配置E4438C**:设置信号发生器的工作模式、输出功率、频率范围等参数,确保...

    matlab串口通信基础讲义

    通过《MATLAB串口通信基础讲义》这份文档,读者可以深入理解MATLAB串口通信的基本原理和操作,为后续的项目开发或研究打下坚实的基础。无论是初学者还是经验丰富的工程师,都能从中获益,提升MATLAB与硬件设备间的...

    我自己做的C语言《图书管理器》,小型的

    3. **文件操作**:图书管理器需要保存和读取数据到磁盘,因此会涉及到C语言的文件操作函数,如fopen、fwrite、fread、fclose等,用于与外部文件交互,存储和读取图书数据。 4. **输入/输出(I/O)处理**:程序需要...

Global site tag (gtag.js) - Google Analytics