C 语言读取文本文件及简单格式化处理

本文介绍C语言中如何读取文本文件,并涉及FILE*指针结构、二进制与文本模式的区别,以及文件访问的相关函数,如打开、关闭文件、设置文件位置等。示例代码展示了具体的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C 语言读取文本文件及简单格式化处理


C语言中,基本输入输出只需要包含 stdio.h一个头文件即可,包含了标准输入输出系列 stdin,stdout,stderr ,以及通用文件操作支持,窄字符输入输出基本操作相关函数。

文件读取

I/O 流是 FILE 类型对象,只能通过 FILE* 类型指针访问及操作。每个流与外部物理设备(文件、标准输入流、打印机、序列端口等)关联。

FILE* 指针结构

在系统指定的需要访问设备的信息(例如 POSIX 文件描述符)外,每个流对象保有下列信息:

  1. (C95)字符宽度:未设置、窄或宽。
  2. 缓冲状态:无缓冲、行缓冲、全缓冲。
  3. 缓冲区,可为外部的用户提供缓冲区所替换。
  4. I/O 模式:输入、输出或更新(兼具输入与输出)。
  5. 二进制/文本模式指示器。
  6. 文件尾指示器。
  7. 错误状态指示器。
  8. 文件位置指示器( fpos_t 类型对象),对于宽字符流包含剖析状态( mbstate_t 类型对象(C95))。
  9. (C11)在多个线程读、写、寻位或查询流时避免数据竞争的再入锁。

二进制与文本模式

文本流是被组合进行(零或更多字符加上终止的 ‘\n’ )的有序字符序列。最后一行是否要求终止的 ‘\n’ 是实现定义的。可能必须在输入与输出时添加、切换或删除字符,以符合 OS 中的表示文本(尤其是 Windows OS 上的 C 流在输出时将 \n 转换为 \r\n ,输入时将 \r\n 转换为 \n )。

二进制流是能通透地记录内部数据的有序字符序列。从二进制流读取的数据始终与先前写出到该流者比较相等。仅允许实现后附一些空字符到流结尾。宽二进制流不必终止于初始迁移状态。

POSIX 实现不辨别文本与二进制流(无 \n 或任何其他字符的特殊映射)。

文件访问相关函数

打开文件

FILE *fopen( const 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值