news 2026/5/7 0:03:56

C语言的文件读取、写入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言的文件读取、写入

C语言的文件读取、写入

文件读取和写入是C语言中非常重要的操作之一,可以通过标准库函数来实现。下面详细介绍文件读取和写入的各种操作及例子:

一、打开文件

使用fopen函数打开文件,该函数的原型如下:

FILE *fopen(const char *filename, const char *mode);

其中,filename参数指定文件的路径和文件名,mode参数指定文件的打开方式,常用的方式如下:

  • “r” : 以只读方式打开文件
  • “w” : 以只写方式打开文件,如果文件不存在则创建一个新文件,如果文件已存在则清除文件内容
  • “a” : 以追加方式打开文件,如果文件不存在则创建一个新文件
    示例代码:
FILE *fp; char *filename = "test.txt"; fp = fopen(filename, "r"); if (fp == NULL) { printf("Failed to open file %s/n", filename); return 1; } // do something fclose(fp);
二、读取文件

使用fread函数从文件中读取数据,该函数的原型如下:

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

其中,ptr参数指向要读取数据的内存地址,size参数指定每个数据项的大小,count参数指定要读取的数据项的数量,stream参数指定要读取的文件流。
示例代码:

FILE *fp; char *filename = "test.txt"; fp = fopen(filename, "r"); if (fp == NULL) { printf("Failed to open file %s/n", filename); return 1; } char buffer[1024]; while (fread(buffer, sizeof(char), sizeof(buffer), fp) > 0) { // do something } fclose(fp);
三、写入文件

使用fwrite函数往文件中写入数据,该函数的原型如下:

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

其中,ptr参数指向要写入数据的内存地址,size参数指定每个数据项的大小,count参数指定要写入的数据项的数量,stream参数指定要写入的文件流。
示例代码:

FILE *fp; char *filename = "test.txt"; fp = fopen(filename, "w"); if (fp == NULL) { printf("Failed to open file %s/n", filename); return 1; } char buffer[] = "Hello World/n"; fwrite(buffer, sizeof(char), sizeof(buffer), fp); fclose(fp);

《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

面试真题/经验

以上资料如何领取?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 0:01:34

体验Taotoken多模型聚合带来的低延迟与高稳定性

体验Taotoken多模型聚合的响应与稳定性优势 1. 多模型统一接入的便利性 在实际开发过程中,通过Taotoken平台接入多个大模型服务可以显著简化技术栈。开发者无需为每个模型厂商单独维护API密钥和接入逻辑,只需使用统一的OpenAI兼容接口即可调用平台上的…

作者头像 李华
网站建设 2026/5/6 23:57:30

RAK2560 WisNode传感器集线器:物联网多传感器集成解决方案

1. RAK2560 WisNode传感器集线器深度解析作为一名长期从事物联网设备开发的工程师,第一次接触RAK2560 WisNode传感器集线器时就被它的模块化设计所吸引。这款设备完美解决了我在户外环境监测项目中遇到的多传感器集成难题——过去需要自行搭建的复杂网关系统&#x…

作者头像 李华
网站建设 2026/5/6 23:56:33

如何在老旧Android设备上实现流畅的电视直播播放体验

如何在老旧Android设备上实现流畅的电视直播播放体验 【免费下载链接】mytv-android 使用Android原生开发的电视直播软件 项目地址: https://gitcode.com/gh_mirrors/myt/mytv-android 如果你曾经在低配置的Android电视或机顶盒上尝试观看高清直播,可能会遇到…

作者头像 李华