C文件操作大全之概述
此文仅为自己学习的一个笔记,笔者水平有限,此系列只是对于文件打开读写操作上的一系列总结,对于更加深入的原理,以及C和C++的区别本人了解的不是很深入,如果内容有什么不对的地方欢迎大家不吝指正。如果有什么疑问也可以一起讨论学习!!
# 一、概述 ## 文件及其分类 计算机上面的各种资源都是由操作系统控制和管理的,而文件是操作系统管理数据的基本单位。 **文件的三要素:** 文件路径、文件名、后缀。
1.1 文件路径
由于在 C 语言中 ‘’ 一般是转义字符的起始标志,故在路径中需要用两个 ‘’ 表示路径中目录层次的间隔,也可以使用 ‘/’ 作为路径中的分隔符。例如,“E:\ch10.doc"或者"E:/ch10.doc”,表示文件 ch10.doc 保存在 E 盘根目录下。“f1.txt” 表示当前目录下的文件 f1.txt。
文件路径:可以显式指出其绝对路径,如上面的”E:\”或者”E:/”等;如果没有显式指出其路径,默认为当前路径。
c语言不仅支持当前目录和根目录文件的操作,也支持多级目录文件的操作
- D:\\filefolder\\file_1 或者D:/filefolder/file_1
文件的命名(规则与要求): 略
1.2 流的概念与分类
I/O设备的多样性以及复杂性非程序设计带来了很多不便,所以我们要统一标准
流的方向为:输入流和输出流。从文件获取数据的方式为输入流,向文件输出的方式为输出流
1.3 文本内容
根据文件中数据的组织形式的不同,可以把文件分为:文本文件与二进制文件
- 文本文件:把要存储的数据当成一系列字符的组成,把每个字符的ASCII码存入文件中。每个ASCII码值占一个字节,每个字节表示一个字符。故文本文件也称作字符文件或者ASCII文件,是字符序列文件。
- 二进制文件:把数据对应的二进制形式存储到文件中,是字节序列文件。
例如数据123,如果按照文本文件形式存储,把数据看成三个字符‘1’,‘2’,‘3’,的集合,文件中一次存储各个字符的ASCII码值,格式如表1所示。
字符 | ‘1’ | ‘2’ | ‘3’ |
---|---|---|---|
ASCII(十进制) | 49 | 50 | 51 |
ASCII(二进制) | 0011 0001 | 00110010 | 00110011 |
如果按照二进制文件形式存储,则把数据123看成是整数型,如果该系统中整数占4个字节,则数据123二进制存储形式的4个字节为:
0000 0000 0000 0000 0000 0111 1011
1.4 C++ 中的文件和流
对于C++而言,我们可以使用 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。下面开始介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:
数据类型 | 描述 |
---|---|
ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 |
ifstream | 该数据类型表示输入文件流,用于从文件读取信息。 |
fstream | 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。 |
要在 C++ 中进行文件处理,必须在 C++ 源代码文件中包含头文件< iostream> 和 < fstream > 。