使用文本文件(.txt)进行数据存取的技巧总结(相当
的经典)
使用文本文件(.txt)进行数据存取的技巧总结
由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用“----转----”标注,原
作者略去,在此对所有原作者表示感谢!
特别说明:由于大家在 I/O 存取上以 txt 文件为主,且读取比存储更麻烦(存储的话 fwrite,
fprintf 基本够用),因此下面的讨论主要集中在“txt 文件的读取”上。除了标注了“转”之
外,其余心得均出于本人经验之结果,欢迎大家指正、补充。
一. 基本知识:
--------------------------------------------------这是转载内容
----------------------------------------------------
1. 二进制文件与文本文件的区别:
将文件看作是由一个一个字节(byte) 组成的, 那么文本文件中的每个字节的最高位都是 0,也
就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有
位都用上了。这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,
两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的 0 和 1,
但是打开方式不同,对于这些 0 和 1 的处理也就不同。如果按照文本方式打开,在打开的时候会
进行 translate,将每个字节转换成 ASCII 码,而以按照二进制方式打开的话,则不会进行任何
的 translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,
你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行
编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑
了。
从文件编码的方式来看,文件可分为 ASCII 码文件和二进制码文件两种:
ASCII 文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的
ASCII 码。例如,数 5678 的存储形式为:
ASCII 码: 00110101 00110110 00110111 00111000
↓ ↓ ↓
↓
十进制码: 5 6 7 8
共占用 4 个字节。ASCII 码文件可在屏幕上按字符显示,例如源程序文件就是 ASCII 文件,用 DOS
命令 TYPE 可显示文件的内容。由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。例如,数 5678 的存储形式为:
00010110 00101110 只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。
C 系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流
评论0
最新资源