文件指针
FILE * 指针变量标识符
作用:通过该指针即可找到存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对文件的操作。
文件的打开和关闭
- 文件的打开 :
格式: 文件指针名 = fopen(文件名,使用文件方式);- “文件指针名”必须是被说明为FILE类型的指针变量
- “文件名”是指文件的类型和操作要求
- “使用文件方式”是指文件的类型和操作要求
- “文件名”是字符串常量或字符串数组
文件操作符 | 作用 | 备注 |
---|---|---|
r(read) | 读 | |
w(write) | 写 | |
a(append) | 追加 | |
t(text) | 文本文件,可省略不写 | |
b(banary) | 二进制文件 | |
+(+号) | 读和写 |
-
注意 :
- 凡是用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出;
- 用“w”打开文件只能向该文件写入。若不存在,则建立新文件;若存在,则删除old文件,重新建立新的文件。
- 向一个已存在的文件追加新的信息,只能用“a”的方式。
- 在打开一个文件时,如果出错,则fopen返回一个空指针值NULL。
- 把一个文本文件读入内存时,要将ASCLL码转换成二进制码,而把文件以文本方式写入磁盘是,也要将二进制码转换成ASCLL码。
- 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。
文件关闭函数(fclose函数)
格式: fclose(文件指针);
作用: 避免文件的数据丢失,正常完成关闭文件时,fclose函数返回值为0,如返回非零值则表示有错误发生。
文件的读写
- 字符读写函数 : fgetc 和 fputc
- 字符串读写函数 : fgets 和 fputs
- 数据块读写函数 : fread 和 fwrite
- 格式化读写函数 : fscanf 和 fprintf
字符读写函数fgetc和fputc
字符读写函数是以‘字符(字节)’为单位的读写函数。每次可从文件读出或向文件写入一个字符。
读字符函数fgetc
格式: 字符变量 = fgetc(文件指针);
作用: 从指定的文件中读一个字符。-
注意 :
- fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
- 读取字符的结果可以不向字符变量赋值
- 在文件内部有一个位置指针,第一次总是第一个字节。多次读取时,注意位置指针的位置。
写字符函数fputc
格式: fputc(字符量,文件指针);
作用: 把一个字符写入指定的文件中。-
注意 :
- 被写入的文件可以用写、读写、追加方式打开,写入字符从文件首开始。
- 每写入一个字符,文件内部指针位置向后移动一个字节。
- fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回EOF。可以此来判断写入是否成功。
字符串读写函数fgets和fputs
读字符串函数fgets
格式: fgets(字符数组名,n,文件指针);
作用: 从指定的文件中读一个字符串到字符数组中。
注意: n是一个整数。表示从文件中读出的字符串不超过n-1个字符,在读入的最后一个字符后加上串结束标志’\0‘读字符串函数fputs
格式: fputs(字符串/字符数组名,文件指针);
作用: 从指定的文件中写入一个字符串到字符数组中。
数据库读写函数fread和fwrite
读数据块数据的格式: fread(buffer,size,count,fp);
写数据块数据的格式: fwrite(buffer,size,count,fp);
- 其中
- buffer -- 是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函数中,它表示存放输出数据的首地址。
- size -- 表示数据库的字节数
- count -- 表示要读写的数据库块数
- fp -- 表示文件指针
- 实例
- fread(fa,4,5,fp); --> 意义: 是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续5次,即读5个实数到fa中。
格式化读写函数fscanf和fprintf
格式化读 : fscanf(文件指针,格式字符串,输入表列);
格式化写 : fprintf(文件指针,格式字符串,输出表列);
文件定位
rewind(文件指针);
功能: 把文件内部的位置指针移到文件首。
fseek(文件指针,位移量,起始点);
功能: 移动文件内部的位置指针到指定的位置。
- 解释:
- “文件指针”: 指向被移动的文件
- “位移量” : 表示移动的字节数,要求位移量是long型数据。要求加后缀"L"
- “起始点”: 表示从何处开始计算位移量,规定: 文件首(0),当前位置(1),文件尾(2);---> 数字为相应的表示
文件检测函数
- 文件结束检测函数feof函数
- 格式: feof(文件指针);
- 功能: 判断文件是否处于文件结束的位置,结束(1),未完(0)
- 读写文件出错检测函数
- 格式: ferror(文件指针);
- 功能: 检查文件在各种输入输出函数进行读写时是否出错,未出错(0),有错(1)
- 文件出错标志和文件结束标志置0函数
- 格式: clearerr(文件指针);
- 功能: 用于清除出错标志和文件结束标志。使他们为0值