文档介绍:二级 C 语言上机指导
一、填空题考点分析:
(一)、文件函数的各个参数的意义
常考的有 fopen(), fseek(), fprintf(), fscanf(), fclose(),fwrite(),fread() ,
feof(),rewind(fp)在这里要明确每一个函数的参数的意义及使用方法。
文件结构体:(FILE)
缓冲文件系统为每个正在适用的文件都在内存开辟的文件信息区
该文件信息用系统定义的名为 FILE 的结构体描述
注意:文件结构体(FILE)包含在 头文件中
typedef struct
{
int _fd; //文件号
int _cleft; //缓冲区中剩下的字符数
int _mode; //文件操作方式
char *_next; //文件当前读写位置
char *_buff; //文件缓冲区位置
}FILE;
例: FIEL *fp;
如 fopen()的使用方法是:fopen 函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
其中,
“文件指针名”必须是被说明为 FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
文件使用方式意义
“rt”只读打开一个文本文件,只允许读数据
“wt”只写打开或建立一个文本文件,只允许写数据
“at”追加打开一个文本文件,并在文件末尾写数据
“rb”只读打开一个二进制文件,只允许读数据
“wb”只写打开或建立一个二进制文件,只允许写数据
“ab”追加打开一个二进制文件,并在文件末尾写数据
“rt+”读写打开一个文本文件,允许读和写
“wt+”读写打开或建立一个文本文件,允许读写
“at+”读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”读写打开一个二进制文件,允许读和写
“wb+”读写打开或建立一个二进制文件,允许读和写
“ab+”读写打开一个二进制文件,允许读,或在文件末追加数据
fclose()的使用比较简单, fclose(文件指针);
格式化输入输出的格式为:
fscanf(文件指针,格式字符串,输入表列);
fprintf(文件指针,格式字符串,输出表列);
而 fseek()的说明是 fseek 函数用来移动文件内部位置指针,其调用形式为:
fseek(文件指针,位移量,起始点);
其中:
“文件指针”指向被移动的文件。
“位移量”表示移动的字节数,要求位移量是long 型数据,以便在文件长度大于64KB 时
不会出错。当用常量表示位移量时,要求加后缀“L”。
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件
尾。
其表示方法如下表。
起始点表示符号数字表示
文件首 SEEK_SET 0
当前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
fread(buffer,size,count,fp);
写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp);
其中:
buffer 是一个指针,在 fread 函数中,它表示存放输入数据的首地址。在 fwrite
函数中,它表示存放输出数据的首地址。
size 表示数据块的字节数。
count 表示要读写的数据块块数。
fp 表示文件指针。
判断文件是否结束函数一般形式:
feof(fp)
文件结束返回真值(非 0);文件未结束返回假值(0)
重置文件位置指针到文件开头函数一般形式:
rewind(fp)
在以上的这些函数中一般所填的空是文件指针(fp)。
如(第二、三、四、五、15、22 套等)题中:
第三套:
#include <>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n)
{ FILE *fp;
/**********found**********/
fp = fopen(__1__, "rb+");
/**********found**********/
fseek(__2__, -1L*sizeof(STU), SEEK_END);
/**********found**********/
fwrite(