news 2026/7/4 18:36:59

计算机考试-C语言 文件读写—东方仙盟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机考试-C语言 文件读写—东方仙盟

一、文件打开模式 fopen 第二参数(重中之重,必背)

1. 只读 r

"r"read

  • 功能:只读,只能读不能写
  • 文件不存在:打开失败,返回 NULL
  • 文件存在:从文件开头读取
  • 不能修改、新增内容

2. 只写 w

"w"write

  • 功能:只写,清空原有内容,从头写
  • 文件不存在:新建空白文件
  • 文件存在:直接清空全部原有数据(覆盖!)
  • 不能读文件

3. 追加 a

"a"append

  • 功能:只写,在文件末尾追加内容,不覆盖原有文字
  • 文件不存在:新建文件
  • 文件存在:光标放在最后,新增内容写末尾
  • 不能读

4. 读写组合(带 +,二级高频)

+代表可读可写,区分 r+/w+/a+

  1. "r+"读写 文件必须存在,不清空;可读可写,可修改中间内容
  2. "w+"读写 文件不存在新建;存在直接清空;可读可写
  3. "a+"读写追加 文件不存在新建;原有内容保留;读从头读,写只能写末尾

5. 二进制标志 b(选择题坑点)

不带 b:文本文件(默认) 带b:二进制文件"rb" "wb" "ab" "rb+" "wb+" "ab+"考点:读写图片、数字、结构体用二进制 b;txt 文本不用 b

速记口诀

r 只读无文件报错;w 只写清空重写;a 只写末尾追加;带 + 都能读;带 b 二进制。

二、文件操作核心函数(输入 / 输出分两类,背参数)

(一)文件输出函数(写文件,把数据存入文件)

  1. fputc(ch, fp)写单个字符:ch 是字符变量,fp 文件指针 等价:把字符 ch 写入 fp 指向文件
  2. fputs(str, fp)写字符串:str 字符数组 / 字符串常量 注意:不会自动换行,要手动加\n
  3. fprintf(fp, "格式控制", 变量)格式化写入,和 printf 对比:多第一个参数文件指针 fp 例:fprintf(fp,"%d %f",a,b);

(二)文件输入函数(读文件,从文件拿数据到程序)

  1. ch = fgetc(fp)读取单个字符,返回读到字符;读到文件末尾返回EOF(-1)
  2. fgets(str, n, fp)读取一行字符串 参数:str 存字符串数组,n 最多读 n-1 个字符,fp 文件指针 读到换行符\n停止,会把\n一起存入数组
  3. fscanf(fp, "格式", &变量)格式化读取,对比 scanf:多文件指针 fp 例:fscanf(fp,"%d",&x);

(三)二进制整块读写(结构体必考)

  1. fwrite(地址, 单个大小, 个数, fp)写结构体 / 数组
  2. fread(地址, 单个大小, 个数, fp)读结构体 / 数组 参数顺序固定:缓冲区地址 → 单个元素字节数 → 读写数量 → 文件指针

三、文件收尾与判断函数

  1. fclose(fp);关闭文件,必考填空,打开必须关闭
  2. feof(fp)判断是否到文件末尾
    • 未到末尾返回 0;读到末尾返回非 0 易错坑:先读再判断 feof,不能直接判断
  3. 文件打开标准模板(程序题必背)
FILE *fp; fp = fopen("test.txt","r"); if(fp == NULL) // 判断打开失败 { printf("打开失败"); return 0; } // 读写操作 fclose(fp);

四、易混对比考点(选择题高频坑)

1. printf / scanf ↔ fprintf / fscanf

  • printf (格式,变量) → fprintf (fp, 格式,变量)
  • scanf (格式,& 变量) → fscanf (fp, 格式,& 变量) 唯一区别:文件函数第一个参数是 FILE 指针 fp

2. putchar/getchar ↔ fputc/fgetc

  • putchar (ch) 输出到屏幕;fputc (ch,fp) 输出到文件
  • ch=getchar () 屏幕读字符;ch=fgetc (fp) 文件读字符

3. puts / gets ↔ fputs / fgets

  • puts 自动加换行;fputs 不加换行
  • gets 不安全已淘汰,考试只用 fgets

五、r w a r+ w+ a+ 对比表(直接背诵)

表格

模式可读可写文件不存在文件存在写入位置
r×打开失败保留原文不可写
w×新建清空全部文件开头
a×新建保留原文文件末尾
r+打开失败保留原文任意位置修改
w+新建清空全部开头写
a+新建保留原文读从头,写只能末尾

六、高频判断题背诵

  1. fopen 返回值是 FILE * 类型,打开失败返回 NULL。
  2. EOF 是文件结束标记,值为 - 1,只能用于文本文件 fgetc 判断。
  3. "w" 模式打开会直接删除原有全部内容,极易丢数据。
  4. "a" 追加模式永远不能修改前面已有的内容,只能末尾添加。
  5. 二进制读写 fread/fwrite 必须搭配 rb wb ab 打开文件。
  6. 使用完文件必须 fclose,否则数据可能丢失、占用资源。
  7. fgets 第二个参数 n,最多读取 n-1 个字符,最后一位存 '\0'。
  8. fputs 不会自动输出换行符,puts 会自动换行。

七、经典填空背题模板

模板 1:读取文件所有字符

FILE *fp; char ch; fp = fopen("1.txt","r"); while( (ch = fgetc(fp)) != EOF ) { putchar(ch); } fclose(fp);

模板 2:追加写入字符串

FILE *fp; fp = fopen("test.txt","a"); fputs("hello c\n",fp); fclose(fp);

模板 3:格式化读写数字

//写入 fprintf(fp,"%d",100); //读取 int x; fscanf(fp,"%d",&x);

模板 4:结构体二进制写入

struct Stu s; FILE *fp=fopen("data.dat","wb"); fwrite(&s,sizeof(struct Stu),1,fp); fclose(fp);

人人皆为创造者,共创方能共成长

每个人都是使用者,也是创造者;是数字世界的消费者,更是价值的生产者与分享者。在智能时代的浪潮里,单打独斗的发展模式早已落幕,唯有开放连接、创意共创、利益共享,才能让个体价值汇聚成生态合力,让技术与创意双向奔赴,实现平台与伙伴的快速成长、共赢致远。

原创永久分成,共赴星辰大海


原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。

东方仙盟:拥抱知识开源,共筑数字新生态


在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。

开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。
共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议 与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。
知识普惠,共促发展:通过开源社区 、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济 的普惠式增长


阿雪技术观

在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者 。无论是分享代码、撰写技术博客,还是参与开源项目 维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基 生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology

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

LV3296与PIC18LF45K42嵌入式条码扫描方案解析

1. 认识LV3296与PIC18LF45K42这对黄金搭档第一次把LV3296二维扫描模组接到PIC18LF45K42开发板时,那种"即插即用"的爽快感至今难忘。作为嵌入式开发中常见的数据采集组合,这套方案在智能零售、仓储管理和工业自动化领域已经默默服务了上千个项目…

作者头像 李华
网站建设 2026/7/4 18:34:49

蛋白质基础模型:AlphaFold-3、Chai-1、HelixFold3与AlphaProteo技术选型指南

1. 这不是又一个“AI看蛋白”的新闻稿,而是一场底层范式的迁移现场如果你最近刷到过“AlphaFold-3发布”“Chai-1开源”“HelixFold3实测惊艳”这类标题,大概率只记住了几个响亮的名字,然后划走了。但真正蹲在实验室电脑前跑过结构预测、调过…

作者头像 李华
网站建设 2026/7/4 18:34:18

YOLOv8目标检测模型CAM可视化实现与应用

1. 项目概述:YOLOv8与CAM可视化的价值融合在计算机视觉领域,目标检测模型的性能评估往往依赖于mAP、Recall等量化指标。然而,这些冷冰冰的数字背后,模型究竟是如何做出判断的?这个问题困扰着许多研究者和工程师。我在完…

作者头像 李华
网站建设 2026/7/4 18:33:48

中小企业AI增效实战:业务流补丁式落地指南

1. 项目概述:这不是一场“用AI替代人”的表演,而是一次组织能力的系统性重装“Rebounding From The Pandemic… with AI”——这个标题里没有技术参数,没有模型架构,甚至没提具体工具,但它像一把手术刀,精准…

作者头像 李华
网站建设 2026/7/4 18:30:56

CVE-2024-50623反序列化漏洞:从原理到批量检测与防御实战

1. 项目概述:从CVE编号到实战利用的完整链条最近在梳理今年新出的高危漏洞时,CVE-2024-50623这个编号反复出现在我的视野里。这是一个影响Cleo旗下某款数据集成产品的远程命令执行漏洞,CVSS评分高达9.8,属于那种一旦在公网暴露&am…

作者头像 李华
网站建设 2026/7/4 18:28:10

机器学习算法分类体系与工程实践指南

1. 机器学习算法分类体系概述在人工智能领域,机器学习算法的分类体系是每位从业者必须掌握的基础知识框架。作为一名长期奋战在一线的AI工程师,我深刻体会到:对算法分类的清晰认知,直接影响着我们在实际项目中的技术选型效率。不同…

作者头像 李华