## 文件基本概念 - 文件流: + C 语言把文件看作是一个字符的序列,即文件是由一个一个字符组成的字符流,因此 c 语言将文件也称之为文件流。 - 文件分类 + 文本文件 + 以 ASCII 码格式存放,**一个字节存放一个字符**。` 文本文件的每一个字节存放一个 ASCII 码,代表一个字符`。这便于对字符的逐个处理,但占用存储空间 较多,而且要花费时间转换。 + .c文件就是以文本文件形式存放的 + 二进制文件 + 以补码格式存放。二进制文件是把数据以二进制数的格式存放在文件中的,其占用存储空间较少。`数据按其内存中的存储形式原样存放` + .exe文件就是以二进制文件形式存放的 --- - **文本文件和二进制文件示例** + 下列代码暂时不要求看懂, 主要理解什么是文本文件什么是二进制文件 ```c #include int main() { /* * 以文本形式存储 * 会将每个字符先转换为对应的ASCII, * 然后再将ASCII码的二进制存储到计算机中 */ int num = 666; FILE *fa = fopen("ascii.txt", "w"); fprintf(fa, "%d", num); fclose(fa); /* * 以二进制形式存储 * 会将666的二进制直接存储到文件中 */ FILE *fb = fopen("bin.txt", "w"); fwrite(&num, 4, 1, fb); fclose(fb); return 0; } ``` - 内存示意图 ![](https://img-blog.csdnimg.cn/img_convert/a989b57283bdbcd82ae8bfb0c6fb4b8d.png) - 通过文本工具打开示意图 ![](https://img-blog.csdnimg.cn/img_convert/61ccbc31fd2ed870fde8de4598d52ee3.png) >+ 文本工具默认会按照ASCII码逐个直接解码文件, 由于文本文件存储的就是ASCII码, 所以可以正常解析显示, 由于二进制文件存储的不是ASCII码, 所以解析出来之后是乱码 ## 最后,如果有任何疑问,请加微信 **leader_fengy** 拉你进学习交流群。 开源不易,码字不易,如果觉得有价值,欢迎分享支持。