【C语言】—— 文件操作(上)-二、 什么是文件

  硬盘(磁盘)上的文件就是文件
  但是在程序设计中,我们一般谈的文件有两种:程序文件数据文件(从文件功能的角度分类)
  

2.1、 程序文件

  所谓的程序文件就是我们写出来的代码,程序文件包括源程序文件(后缀文 . c .c .c),目标文件 w i n d o w s windows windows 环境后缀为 . o b j .obj .obj),可执行程序 w i n d o w s windows windows环境后缀为 . e x e .exe .exe

在这里插入图片描述

  

2.2、 数据文件

  什么是数据文件呢?当我们写程序,从某一个文件中读取数据;或者把一些数据写到文件中,这种文件就称为数据文件

  本章我们讨论的内容主要是数据文件

  在之前的学习中,我们所处理的输入输出都是以终端为对象的,即:从终端的键盘输入数据,运行结果显示到显示器(屏幕)上。

  其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上的文件
  

2.3、 文件名

  一个文件要有唯一标识,以便用户识别和引用
  文件名包含 3 部分:文件路径+文件名主干+文件后缀

  如:c:\code\test.txt

  • c:\code\ 为文件路径
  • t e s t test test 为文件名主干
  • t x t txt txt 为文件后缀

  

2.4、二进制文件与文本文件

  根据文件的组织形式,数据文件一般被称为文本文件二进制文件

  数据在内存中以二进制的形式存储,如果不加转换的输出到外出文件中,就是二进制文件

  前面曾提到的 . o b j .obj .obj文件就是一种 二进制文件,通过文本编辑器打开是一堆乱码,我们是看不懂的

在这里插入图片描述

  
  如果要求在外存上以 A S C I I ASCII ASCII 码的形式存储,则需要再存储前转换。以 A S C I I ASCII ASCII 字符存储的文件就是文本文件

在这里插入图片描述

  
  那么一个数据在文件中是如何存储的呢?
  字符一律以 A S C I I ASCII ASCII形式存储,数值型数据及可以用 A S C I I ASCII ASCII形式存储,也可以使用二进制形式存储。

  什么意思呢?假设现在有一个整数 10000:
  如果以 A S C I I ASCII ASCII 码的形式存储,则磁盘中占用 5 个字节(一个字符一个字节):一个字符 ‘1’,四个字符 ‘0’
  如果以二进制的形式存储,磁盘上只占4个字节(一个整型)
  

在这里插入图片描述

  而以 A S C I I ASCII ASCII形式存储则为文本文件;以二进制形式存储则为二进制文件
  
测试代码:

#include<stdio.h>

int main()
{
	int a = 10000;
	FILE* pf = fopen("test.txt", "wb");
	fwrite(&a, 4, 1, pf);//二进制的形式写到文件中
	fclose(pf);
	pf = NULL;
	return 0;
}

  这段代码可能有些看不懂,但是没关系,我们只需知道其大致意思即可:这段代码就是将 10000 以二进制的形式写到文件中

  执行程序后,我们直接打开文件:

在这里插入图片描述

  
  我们再通过二进制的形式打开文件

在这里插入图片描述

VS上打开二进制文件的方法

在这里插入图片描述

10000 在二进制文件中


  那 10 和 27 又是什么意思呢?其实就是 0001 0000 和 0010 0111 的十六进制表示,同时,因为是小端字节序存储,因此存储时反过来的。
  

上一篇:网络编程:UDP编程笔记


下一篇:IT之家最新科技热点