通常打开文件的方法:
• FILE *文件指针变量;
文件指针变量=fopen(“文件名”, “文件使用方式”); If(文件指针变量= =NULL) {
printf(“cannot open this file\n”); exit(0); }
注:当打开文件出错时,函数 fopen 会返回一个空指针NULL 出错原因可能是以“r”方式打开一个不存在的文件,或者是磁盘已满等。
关闭文件的函数:
fclose(文件指针变量); 功能:用来关闭文件指针变量所指向的文件。成功返回0,否则返回非零值。
如:fclose(fp);
注:1 使用完一个文件后应即时关闭。否则会浪费系统资源。 2 关闭文件后,文件指针变量不再指向该文件,不能再通过该指针对该文件继续进行读写操作,除非再次打开该文件,使该指针变量重新指向该文件。
格式化读文件函数 fscanf()
类似 scanf函数,都是格式化输入函数。
但scanf 函数的作用对象是终端键盘,而 fscanf函数的作用对象是文件。 • 一般格式: fscanf(文件指针变量,“格式控制”,输入列表) “格式控制”与“输入列表”同scanf 函数中描述。 fscanf 函数的作用: 从文件指针变量指向的文件中按指定格式读取数据到输入列表中的变量中。
• 如:fscanf(fp, “%d:%d”,&x,&y);
• 执行结果是从 fp 指向的文件中读取两个整数到变量x和y中。
格式化写文件函数fprintf()
该函数类似printf 函数,都是格式化输出函数,只不过两者的作用对象一个是文件,一个是终端。 fprintf 函数的一般格式为:fprintf (文件指针,“格式控制”,输出列表) “格式控制”与“输出列表”同printf 函数中描述。
fprintf 函数的作用是将输出项按指定的格式写入到文件指针变量所指向的文件中。 如:fprintf(fp, “%d,%d”,100,200); 执行结果是将100和200两个整数存放到fp指向的文件中。 注:用fprintf 和fscanf 函数对文件读写使用方便,容易理解。 但由于在输入时要将ASCII码转换为二进制形式,在输出时又要将二进制形式转换成字符, 花费时间较多,占用系统资源较大。 因此在数据量较大的情况下,最好不用fprintf 和fscanf 函数,而用fread 和fwrite 函数。
文件结束检测函数feof
函数调用格式: feof(文件指针); 功能:判断文件是否处于文件结束位置
如文件结束,则返回值为1,否则为0。
使用格式读写函数,生成一个数据文件 要求:文件内容如下: code_flag comm_flag blank_flag total_flag 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1
说明:第一行是数据标题,后面的是测试数据,测试数据由用户一行一行通过scanf函数录入,使用fprint 函数将其写入文件,要求标题和数据对齐。
2 使用格式化读写函数,将练习1中的内容读取出来,不同的字段值赋给不同的变量,并且将这些变量的值循环打印出来