目录
一,文件
C把文件看作是一系列的连续的字节,每个字节都能被单独读取。
C提供两种文件模式:文本模式和二进制模式
1.文本模式,二进制模式
首先要区分文本内容和二进制内容,文本文件格式和二进制文件格式,及文件的文本模式和二进制模式。
- 文本内容:如果文件最初使用的是二进制编码的字符(如ASCII码)表示文本,该文件就是 文本文件,其中包含文本内容。
- 二进制内容:如果文件中的二进制值代表机器语言代码或数值数据,图片或者音乐编码,该 文件就是二进制文件,其中包含二进制内容。
2.标准文件
c程序自动打开的三个文件
- 标准输入(stdin):为程序提供输入,getchar()和scanf()使用的文件。
- 标准输出(stdout):为程序提供输出,putchar()、printf()和puts()使用的文件。
- 标准错误输出(stderr):提供一个逻辑上不同的地方来发送错误信息。
二,文件的打开和关闭
1.文件指针
每个被使用的文件都在内存中开辟了一个相对应的文件信息区,用来存放文件的相关信息。这些信息是保存在一个结构体变量中的,这个结构体类型是由系统声明的取名FILE(文件)。
定义一个文件指针变量:
FILE * pf ;//文件指针变量,指向被操作的文件
1.1文件的打开
打开文件我们用到一个打开文件的函数 fopen()查找库函数得知 :
所以我们用文件指针接受打开的文件可操作流:
FILE * pf = fopen("文件名.后缀","打开方式");
//打开文件之后要判断有没有打开成功
if(pf==NULL) //打开失败返回NULL
perror("fopen");
//perror报错函数,会打印括号里面的错误信息
流是一个高度抽象的概念:
程序直接传输到外部设备比较繁琐,所以写入流,让流操作
下述所有的流 同时包括 FILE文件指针pf。
1.2文件的关闭
关闭与流关联的文件并取消关联,使用fcloae():
fclose(pf);//关闭文件
pf=NULL; //置空指针
注意:
- 打开文件是有限的,只打开不释放,最后会打不开文件。
- 路径错误也会导致打不开文件
- 可以用绝对路径打开文件,但是要注意转义字符(目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径)。
三,文件的顺序读写
先简单介绍所有的读写函数,然后再附上表格。
所有用到的pf都表示文件指针。
1.fgetc
从流中获取字符
参数是标准输入流
读一次向后移动 1 ,类似于指针的 ++ ,当读取超出文件长度 出EOF(-1) ;
int ret = fgetc(pf);
2,fputc
将字符写入流