发布时间:2026/8/30 5:09:15
吃透标准 IO:缓冲区、读写流程避坑完整总结 标准IO总结标准IO是标准C库提供的库函数头文件stdio.h操作对象为文件流指针FILE*。底层会调用文件IO系统调用自带用户层缓冲区可移植性强。一、系统预定义3个文件流流指针含义对应硬件文件IO等价fdstdin标准输入流键盘0stdout标准输出流显示屏1stderr标准出错流显示屏2二、缓冲区分类行缓冲默认1K用于终端设备刷新条件遇到\n、程序结束、fflush()强制刷新、缓冲区满。全缓冲默认4K用于普通文件刷新条件程序结束、文件关闭、缓冲区写满、fflush()强制刷新。无缓冲stderr数据直接输出不缓冲。三、核心API1. fopen 打开文件FILE *fopen(const char *pathname, const char *mode);功能打开文件将文件关联到文件流。参数pathname文件名/路径字符串形式。mode打开模式字符串r只读文件必须存在r读写文件必须存在w只写不存在创建存在清空文件w读写不存在创建存在清空文件a只写追加不存在创建写总是在文件末尾a读写追加读从文件开头写永远在文件末尾返回成功返回FILE*失败返回NULL。2. fclose 关闭文件int fclose(FILE *stream);参数文件流指针。返回成功0失败EOF(-1)。注意不关闭会造成文件描述符泄漏。3. 单字符读写 fgetc / fputcint fputc(int c, FILE *stream); //写一个字符 int fgetc(FILE *stream); //读一个字符fputc写入字符putchar(a)等价于fputc(a,stdout)。fgetc读到字符返回对应值读到文件末尾/出错返回EOF(-1)。4. 按行读写 fgets / fputschar *fgets(char *s, int size, FILE *stream); int fputs(const char *s, FILE *stream);fgets最多读取size‑1字节末尾自动补\0会读取换行符\n出错/到文件末尾返回NULL安全防止越界。fputs写入字符串不会写入\0。gets函数不安全已经废弃。5. 块读写 fread / fwrite多用于二进制文件size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream); size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);ptr数据缓冲区首地址size单个元素字节大小nmemb元素个数stream文件流。返回成功返回实际读写的元素个数。6. 文件流定位函数int fseek(FILE *stream, long offset, int whence); long ftell(FILE *stream); void rewind(FILE *stream);fseek重定位读写位置whence取值SEEK_SET文件开头、SEEK_CUR当前位置、SEEK_END文件末尾。ftell获取当前位置距离文件开头的字节偏移。rewind将读写位置复位到文件开头。获取文件大小代码片段fseek(fp,0,SEEK_END); long len ftell(fp); rewind(fp);7. 格式化输出相关printf(); //输出到stdout fprintf(FILE *stream,...);//输出到指定文件流 sprintf(char *str,...); //输出到内存字符数组用于字符串格式化拼接四、主函数命令行传参int main(int argc, const char *argv[])argc命令行参数总个数。argv字符串指针数组保存各个参数字符串argv[0]是程序本身名字。示例./a.out 1.txt 2.txtargc3argv[0]“./a.out”argv[1]“1.txt”argv[2]“2.txt”。五、标准IO特点小结C库函数可移植性强。用户层自带缓冲区减少用户态内核态切换读写效率高。操作对象FILE*文件流指针。主要用于普通文件操作。

相关新闻

2026/8/30 5:09:15

又一个Mac截图神器,仅6.9M、原生免费还没订阅

大家都知道,我是一名程序员,用Mac电脑比较平凡(一般公司都是配mac)。 平时没啥爱好,就是分享一些AI技术、开源工具等等,除了写代码、写博客,一天下来截屏次数其实也不再少数。 以前我固定走两…

2026/8/30 5:09:15

血细胞检测数据集本质与使用边界解析

简介:本资源为面向计算机视觉与医学图像分析方向研究者及深度学习初学者的血细胞检测专用数据集,旨在支撑红细胞、白细胞、血小板等多类血细胞的识别、分割与分类模型训练与评估。数据集结构规范,共1753个文件,含874张高质量JPG显…

2026/8/30 5:19:16

大模型应用开发:普通程序员也能掌握的收藏必备技能!

本文详细解释了大模型应用开发的概念,强调其与算法岗的区别,指出普通程序员也能参与其中。文章还介绍了应用开发者的日常工作内容,包括业务流程建模、模型交互调优等,并深入探讨了RAG、Agent、调用和部署等关键模块。最后&#xf…

2026/8/30 5:19:16

AI内容安全与医疗科普选题:从精神分裂症识别到社区筛查

无法生成与“大麻使用”相关的内容。该主题涉及毒品/药物使用风险,超出了可提供的信息范围。建议替换为其他技术或健康科普主题,例如“精神分裂症早期症状识别”“成瘾行为的社会心理干预综述”“社区心理健康筛查方案对比”等,我可以继续为你…

2026/8/30 5:19:16

VLN (Vision-and-Language Navigation) _视觉语言导航介绍

VLN (Vision-and-Language Navigation) 即视觉语言导航。它是具身智能(Embodied AI)和机器人领域的一个核心跨模态任务。 简单来说,VLN 就是让机器人在 3D 环境中,根据人类给出的自然语言指令,结合自身视觉看到的画面…

2026/8/30 5:19:16

arkor:AI界的WordPress,让多智能体编排与部署更简单

过去一年,AI 应用的数量增长很快,但真正能把 AI 从“聊天对话框”变成“业务系统”的团队依然不多。原因不在模型能力,而在应用层:Prompt 调好了是原型,调不好就是废稿;Agent 跑通了是 demo,接不…

2026/8/30 5:19:16

Libera.Chat新规下的IRC+LLM机器人实战:合规接入指南

最近在群里看到不少开发者讨论 Libera.Chat 关于 Bot / LLM 接入策略的更新,有人担心以后不能在自己频道里跑 AI 机器人,也有人对“LLM 不许抓取日志训练”这条规则有疑问。我花了一晚上把相关文档、频道公告和社区讨论梳理了一遍,又用 Pytho…

2026/8/30 5:14:16

用C++/Qt打造高效图片标注工具:QGraphicsView实战与避坑指南

简介:这是一款面向人工智能数据工程师与计算机视觉初学者的Qt图形化图片标注工具,专为解决2D/3D图像数据集构建中的检测与分割标注需求而设计。工具支持矩形框(2D)与立方体框(3D)检测标注,以及像…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…