赞
踩
目录
- 对计算机而言,一切皆数据,C语言源代码文件是数据、编译后的可执行程序也是数据,数据的存放方式有很多种,如内存、文件、数据库等,文件是极其重要的一种
- 根据文件中数据组织形式的不同,可以把文件分为文本文件和二进制文件,C语言源代码是文本文件,编译后的可执行程序是二进制文件
文本数据由字符串组成,存放了每个字符的 ASCII 码值,每个字符占一个字节,每个字节存放一个字符
比如数字 123,如果用文本格式存放,数据内容是'1'、'2'、'3' 三个字符,占三个字节
表格形式
字符 | '1' | '2' | '3' |
ASCII(十进制) | 49 | 50 | 51 |
ASCII(二进制) | 00110001 | 00110010 | 00110011 |
二进制数据是字节序列,数字123的二进制表示是01111011,如果用二进制格式形式存储,char、short、int、long都可以存储123
存储方式分别如下:
char 存储
01111011
short 存储
00000000 01111011
int 存储
00000000 00000000 00000000 01111011
long 存储
00000000 00000000 00000000 00000000 00000000 00000000 00000000 01111011
- 按文本格式存放数据的文件称为文本文件或ASCII文件,文件可以用vi和记事本打开,看到的都是ASCII字符
- 按二进制格式存放数据的文件称为二进制文件,如果用 vi/vim 打开二进制文件,看到的是乱码
对文件进行操作之前必须先“打开”文件,操作(读和写)完成后,再“关闭”文件
- 操作文件的时候,C语言为文件分配一个信息区,该信息区包含文件描述信息、缓冲区位置、缓冲区大小、文件读写到的位置等基本信息,这些信息用一个结构体来存放(struct _IO_FILE),FILE结构体和对文件操作的库函数在 stdio.h 头文件中声明的
- 打开文件的时候,fopen 函数中会动态分配一个FILE结构体大小的内存空间,并把FILE结构体内存的地址作为函数的返回值,程序中用FILE结构体指针存放这个地址
- 关闭文件的时候,fclose 函数除了关闭文件,还会释放FILE结构体占用的内存空间
- FILE结构体指针习惯称为文件指针
C语言提供的库函数 fopen 来创建一个新的文件或者打开一个已存的文件,调用fopen函数成功后,返回一个文件指针( FILE *)
函数的原型如下:
FILE *fopen( const char * filename, const char * mode );
- 参数 filename 是字符串,表示需要打开的文件名,可以包含目录名,如果不包含路径就表示程序运行的当前目录
- 参数 mode 也是字符串,表示打开文件的方式(模式),打开方式有很多种,我们来看一个表格
方式 |
含 义 |
说 明 |
r |
只读 |
文件必须存在,否则打开失败 |
w |
只写 |
如果文件存在,则清除原文件内容;如果文件不存在,则新建文件 |
a |
追加只写 |
如果文件存在,则打开文件,如果文件不存在,则新建文件 |
r+ |
读写 |
文件必须存在。在只读 r 的基础上加 '+ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。