第8章文件北京联合大学信息学院张宝森知识点 1. 数据文件的用途 2. 文本文件和二进制文件的区别 3. 文件指针的使用 4. 文件打开、关闭的作用及方法 5. 文件顺序存取和随机存取的特点与实现方法 文件的概念【例 8-1 】小王接受了组织小学生进行一次 2位数加法速算竞赛的任务,在出题的问题上,他想用程序完成自动生成试卷。要达到这一目的,困扰小王的主要问题有两个: ①竞赛题如何产生? ②生成的试题如何保存以备以后打印? 【编程思路】可以用 C语言的函数 rand 配合求余运算,便可得到指定范围的数据,从而实现试题的组编。产生的试题若直接调用 printf 函数输出,则只是显示在屏幕上的,无法保存,不便打印试卷。借鉴九九乘法表数据保存于文本文件中的方法,也可以把产生的试题写入文本文件, 并且可以随时用“记事本”程序打开查看和打印。至此,两个问题都有了解决方案。/*程序 8-1 */ #include<> / *调用有关文件的 I/O 函数也应包含此文件*/ #include<> / *调用 rand 函数应包含此文件*/ #include<> / *调用 getch 函数应包含此文件*/ void main( ) { int i,x,y; FILE * fp; / *定义文件指针*/ if((fp=fopen("","w"))==NULL) / *用写方式打开文本文件并判断打开状况*/ { printf(" 不能打开文件,按任意键退出!"); / *提示文件未能正常打开*/ getch(); / *等待用户按任意键*/ exit(0); / *程序异常停止运行*/ } fprintf(fp,"\t\t\t\tTest Paper\n"); / *向文件写入试卷标题*/ for(i=1;i<=50; i++) / *循环控制生成 50 道题*/ { x= rand()%99; y=rand( )%99; / *利用随机函数产生 2个运算数*/ fprintf(fp,"%2d+%2d = ____ ",x,y); / *向文件写入 1道试题*/ if( i%5==0) fprintf(fp,"\n"); / *控制每 5道试题换行一次*/ } fclose(fp); / *关闭文件*/ printf(" 试卷生成完毕! \n "); }新的问题:除了用“记事本”程序打开阅读、打印外,能否自己写一个程序将试卷读出并显示在屏幕上? 1. 文件的分类在C语言中,没有大众化的文件分类,对文件都按照字节集合对待。所谓“文件”是指一组相关数据的有序集合,每个集合的名字就是文件名。文件由操作系统统一管理、控制。 1).普通文件和设备文件存储在外部介质(磁盘、 U盘、光盘)上的文件统称为普通文件。源程序文件、目标文件、可执行文件、头文件、文本文件、二进制数据文件都属于这一类。由于流行的存储介质以磁盘为主,用 U盘、光盘存储文件的方法来源于磁盘,因此有时候将存储于这些介质上的文件笼统地称为磁盘文件。设备文件是指与主机相联的各种外部设备,如键盘、显示器、打印机等。由于操作系统利用其内部的机制,将设备以文件的方式进行管理和使用,因此称为设备文件。 2).程序文件和数据文件程序文件中存储的是程序代码,前面提到的源程序文件、头文件、目标文件、可执行文件都属于这一类,源程序文件和头文件主要由文字符号组成,目标文件和可执行文件主要由机器指令代码组成。数据文件中存储的是程序运行过程中要读入或保存的数据信息。数据的输入可以从键盘获得的,也可以从磁盘文件中获得。数据的输出可以显示在屏幕上,但更多的是保存到文件中。 3). 文本文件和二进制文件文本文件又称作 ASCII 文件,在磁盘上存储时,它的每一个字节存放一个 ASCII 字符码,整个文件是一个 ASCII 字符码的集合。对于在内存中不
第8章 文 件 来自淘豆网www.taodocs.com转载请标明出处.