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

C语言文件操作精讲:从格式化读写到随机访问

各类资料学习下载合集  
​​https://pan.quark.cn/s/8c91ccb5a474​

在C语言编程中,文件操作是一项不可或缺的核心技能。无论是保存程序运行数据、读取配置文件,还是处理日志文件,我们都离不开与文件的交互。本文将根据课堂笔记,系统地讲解C语言中文件的格式化读写(​​fprintf​​, ​​fscanf​​)、随机位置读写(​​fseek​​)以及错误处理(​​perror​​)等关键操作,并通过丰富的代码示例,带你彻底掌握文件操作的精髓。

一、 文件的格式化写入 (​​fprintf​​)

正如我们使用 ​​printf​​ 函数将格式化的内容输出到控制台一样,C语言提供了 ​​fprintf​​ 函数,让我们能以同样的方式将格式化的数据写入到文件中。

核心函数:

  • • ​​fopen(const char *filename, const char *mode)​​: 打开一个文件,返回一个文件指针 ​​FILE*​​。​​mode​​ 为 ​​"w"​​ 表示以写入方式打开,如果文件存在则清空内容,不存在则创建。
  • • ​​fprintf(FILE *stream, const char *format, ...)​​: 根据指定的 ​​format​​ 格式,将数据写入到 ​​stream​​ 指向的文件中。
  • • ​​fclose(FILE *stream)​​: 关闭文件,释放资源。这是一个非常重要的好习惯。

代码案例:
下面的代码将创建一个名为 ​​data.txt​​ 的文件,并向其中写入一个字符串 "hello world" 和一个整数 11。

#include <stdio.h>
#include <stdlib.h> // 为了使用 exit()int main() {// 1. 打开文件// 使用 "w" 模式,表示写入。如果文件不存在,会创建它;如果存在,会清空原有内容。FILE *fp = fopen("data.txt", "w");// 2. 检查文件是否成功打开if (fp == NULL) {printf("文件打开失败!\n");exit(1); // 退出程序}// 3. 定义要写入的数据char str[] = "hello world";int num = 11;// 4. 使用 fprintf 进行格式化写入// 写入字符串和整数,用空格隔开,并添加换行符fprintf(fp, "%s %d\n", str, num);printf("数据已成功写入到 data.txt 文件中。\n");// 5. 关闭文件fclose(fp);return 0;
}
http://www.dtcms.com/a/346531.html

相关文章:

  • 控制建模matlab练习16:线性状态反馈控制器-⑤轨迹追踪
  • 后台管理系统-15-vue3之登录页的实现
  • 谷歌浏览器重定向url,谷歌浏览器浏览网页修改url到本地
  • 批量归一化:不将参数上传到中心服务器,那服务器怎么进行聚合?
  • 基于JSqlParser的SQL语句分析与处理
  • ASCOMP PDF Conversa:高效精准的PDF转换工具
  • 【机器学习深度学习】多模态学习
  • 终结系统裸奔:Debian老旧版本安全加固终极指南
  • 李宏毅NLP-12-语音分类
  • 达梦数据库巡检常用SQL(三)
  • 全国网络安全知识竞赛有哪些
  • androidstudio 无法启动
  • Linux问答题:调优系统性能
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI
  • 卓伊凡的开源战略与PHP-SG16加密技术深度解析-sg加密技术详解-卓伊凡
  • 32位内部数据通路是什么?
  • mmdetection:记录算法训练配置文件
  • 【Linux系统】进程信号:信号的处理
  • TypeReference 泛型的使用场景及具体使用流程
  • C语言宏用法
  • 单例模式与线程池
  • Ollama 本地部署 Qwen2.5-7b
  • 神经网络|(十一)概率论基础知识-贝叶斯公式和全概率公式
  • 概率论基础教程第六章 随机变量的联合分布(二)
  • C++哈希表:unordered_map与unordered_set全解析
  • day12(练习题)
  • Java微服务架构设计模式详解
  • Baumer高防护相机如何通过YoloV8深度学习模型实现社交距离的检测识别(python)
  • 【Protues仿真】基于AT89C52单片机的超声波测距
  • 关于微服务下的不同服务之间配置不能通用的问题