1.为什么使用文件
2.什么是文件
3.文件的打开和关闭
4.文件的顺序读写
5.文件的随机读写
6.文本文件和二进制文件
1.为什么使用文件
我们使用word时,写了一大段文字,此时文档存在内存,当我们退出word的时候,我们所写的文字自然就不存在了,等下次打开word,文字又得重新写入,如果使用这样的word就很难受。
我们使用过word的人士会出来说,那在我们写完文字,打开保存,文字被自动保存到文件,文件是将数据存放到电脑的硬盘上,这样一来做到了数据的持久化。
2.什么是文件
在程序设计中,从程序功能的角度出发分为两种,如下
目前为止,我所学的c语言,输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。
这里我拿scanf和printf来说
printf
printf打印一串字符到显示屏上,是直接打印到显示屏上的?显然不是,为啥不是嘞,因为他是调用库函数里的printf,库里面事先写好了printf函数的功能,它拿来使用就行。
scanf函数也是同理。
3.文件的打开和关闭
文件的打开,指针,关闭如下
这块我单独将一下文件的关闭和文件的打开
文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。
ASCII规定使用fopen函数来打开文件,fclose来关闭文件。
看fclose函数的作用,不难得知,fclose是关闭文件当中的流,我们之前好像没见过流,不知道流是啥东西呀,那么我们引入了新的概念流,那流是什么呢?听我道来,好吧。
程序员把数据写到流里面,流再将数据传给u盘,光盘,硬盘......,流就是汇集了一个又一个数据,然后流出到u盘,硬盘等等。
4.文件的顺序读写
1.fgetc函数
fgetc在流里拿到字符
作用:字符输入函数
适用于所有输入流
下面的例子是fgetc将字符输入到显示器上
fputc函数
作用:字符输出
适用于:所有流
fputc可以将字符写进文件
fputc直接打印在屏幕上
fputs
文本行输入函数
他是一行一行输入文本,而要换行,加个斜杠n就行
fgets
作用:文本行输出
适用于:所有输入流
下面是例子
fscanf
作用:格式化输入函数
使用于:所有输入函数
作用:格式化输入,从流中读取数据
fprintf
作用:格式化输出函数
适用于:所有输出流
fwrite
作用:二进制输出
适用:文件
以下是二进制写文件
注意:二进制写的文件在电脑上是不可见的
fread
作用:二进制输入
使用:文件
以下是二进制读文件
二进制文件也不可读
sprintf
作用:调用信息数据,写出字符串
sscanf
作用:调用信息数据,读出字符串
5.随机读写
fseek
起到定位文件指针的作用
fseek
作用:根据文件指针的位置以及偏移量来定位文件指针
先把字母a到h写进记事本
ftell
作用:统计指针的偏移量
rewind
作用:让文件指针回到文件的起始位置
6.文本文件和二进制文件
二进制文件:数据在内存中以二进制的形式存储,不加转换的输出到外存
文本文件:是外存上做改动,如果要在外存上以ASCII码的形式存储,则需要在存储前转换,以ASCII码字符的形式存储的文件就是文本文件。