函数 fwrite() 用法

fwrite() 是 C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。

头文件:stdio.h

函数原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);

(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数count。
说明:写入到文件的哪里? 这个与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。
fseek对此函数有作用,但是fwrite 函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。

注意:返回值随着调用格式的不同而不同:

    (1) 调用格式:fwrite(buf, sizeof(buf), 1, fp);
    成功写入返回值为1(即count)
    (2)调用格式:fwrite(buf, 1, sizeof(buf), fp);

    成功写入则返回实际写入的数据个数(单位为Byte)

注意事项:

    写完数据后要调用fclose()关闭流,不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。

  • 25
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fwrite()是C语言标准库中的一个文件处理函数,用于向指定的文件中写入若干数据块。它以二进制形式对文件进行操作,不局限于文本文件。函数原型为:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream)。其中,buffer是要获取数据的地址,size是要写入内容的单字节数,count是要进行写入size字节的数据项的个数,stream是目标文件指针。函数返回实际写入的数据项个数count。 根据文件的打开模式不同,fwrite()的写入位置也会有所不同。如果打开模式是"w+",则从文件指针指向的地址开始写入,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数。如果打开模式是"a+",则从文件的末尾开始添加,文件长度会增加。可以使用fseek()函数来控制写入位置。需要注意的是,fwrite()函数将数据写入用户空间缓冲区,并未同步到文件中,如果需要将内存与文件同步,可以使用fflush(FILE *fp)函数fwrite()的返回值根据调用格式的不同而不同。如果调用格式是fwrite(buf, sizeof(buf), 1, fp),成功写入返回值为1(即count)。如果调用格式是fwrite(buf, 1, sizeof(buf), fp),成功写入则返回实际写入的数据个数(单位为字节)。 在使用fwrite()函数后,需要调用fclose()函数关闭流,否则文件指针会指向下一个待写或读数据位置的指针。 以下是一个使用fwrite()函数的示例代码: ```c #include <stdio.h> int main() { FILE *fp; char str\[\] = "www.dotcpp.com"; fp = fopen("dotcpp.txt", "w"); fwrite(str, sizeof(str), 1, fp); fclose(fp); return 0; } ``` 这段代码将字符串"www.dotcpp.com"写入到名为"dotcpp.txt"的文件中。 #### 引用[.reference_title] - *1* [函数 fwrite() 用法](https://blog.csdn.net/TsingHua666/article/details/80631290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [fwrite函数用法](https://blog.csdn.net/qq_33300585/article/details/128571872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值