C语言文件操作
为什么使用文件?
文件可以保存数据,如果没有文件,我们写的程序的数据保存在电脑内存中,程序结束后,向内存申请的空间就会被操作系统回收,数据就没啦。再次运行是看不到上次数据的,所以想要持久地保存数据,就需要文件了。
文件分类
文件分为程序文件和数据文件。
程序文件包括源程序文件(.c后缀),目标文件(windows环境后缀是.obj),可执行程序文件(后缀.exe)。
数据文件是程序运行时进行读写的数据。数据文件是这里要说的重点。
数据文件
数据文件分为文本文件和二进制文件
文本文件
以ASCII码值存储在外存,存储前转换。文本文件。
二进制文件
以二进制形式存储在内存,不加转换地输出到外存。二进制文件
字符一律以ASCII码值形式存储,数据可以用ASCII形式,也可以用二进制形式。
比如说10000,用ASCII形式,就要占5个字节,用二进制形式,占用4个字节。
流
C程序对画面、键盘、文件的输入输出都是通过流来操作的。流是一个抽象的名词,用于对各种设备的统称。我们向流里写入数据,读取数据,操作数据。
C语言程序在启动时,默认打开了三个流:
stdin:标准输入流,在大多数环境中从键盘输入。scanf函数就是在标准输入流里读取数据。
stdout:标准输出流,在大多数环境中输出至显示器界面。printf函数就是将信息输出到标准输出流中。
stderr:标准错误流,大多数环境是输出到显示器界面。
stdin? stdout stderr三个流的类型是FILE*,文件指针。
C语言中,就是通过文件指针来维护流的各种操作的。
ps:stdin、stdout、stderr中的std就是standard简写,标准的
文件指针
每个文件都在内存中开辟了一个相应的文件信息区,用来存放文件的信息。这些信息包含在一个结构体中。该结构体由系统声明,取名FILE。
每当打开一个文件,系统会自动创建一个FILE类型的结构体变量,用来操作这个文件。
一般是通过一个FILE的指针来维护这个FILE结构的变量。FILE*
了解就好
文件的打开和关闭
文件的读写
文件的打开和关闭
ANSIC规定用fopen函数来打开文件,fclose来关闭文件。
FILE* fopen ( const char* filename, const char *mode);
int fclose (FILE* stream);
fopen的第二个参数是mode,mode表示文件打开模式,有以下几种。
最常见的? ?r(只读) w(只写) a(追加)。
后面加个b,? ?rb、wb、ab,多了一层含义“以二进制的形式”。
后面再加个+,? rb+、 wb+? 、ab+,多了一层含义“写”
文件的读写
文件的顺序读写
fgetc? fputc? ? ? ? ? ? 字符输入和输出? ? ? ? ? 读取结束判断是否为EOF
fgets? ?fputs? ? ? ? ? 文本行输入和输出? ? ? ? 读取结束判断是否为NULL
fscanf? fprintf? ? ? ? 格式化输入和输出
fread? ?fwrite? ? ? ? 二进制输入和二进制输入? ? 适用于文件
以上都是一对一对使用的。
内容介绍不很全面,以后有新的理解再添加。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!