《C语言程序设计》-项目八_第1页
《C语言程序设计》-项目八_第2页
《C语言程序设计》-项目八_第3页
《C语言程序设计》-项目八_第4页
《C语言程序设计》-项目八_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务一实现程序主界面任务分析程序运行的主界面,通过以下几个步骤来实现:(1)定义菜单选择函数;(2)在主程序中调用菜单选择函数,根据用户选择的数字调用相应的函数。任务实施步骤一:实现菜单选择函数,返回用户选择的数字。主要采用do-while循环来实现,如程序8-1所示。步骤二:在主函数中调用该菜单选择函数,根据用户输入的数字,调用相应的函数,如程序8-2所示。返回任务二通信录信息保存在C语言中,实现文件操作主要是调用库函数来实现的,下面介绍文件相关概念和几个常用的操作函数。1.文件相关概念所谓“文件”,是指一组相关数据的有序集合。这个数据集有一个名称,叫作文件名,例如源程序文件、目标文件、可执行文件、库文件(头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从用户的角度看,文件可分为普通文件和设备文件两种。普通文件是指驻留在磁盘或其他外部介质上的一个有序数据集,其可以是源文件、目标文件、可执行程序。下一页返回任务二通信录信息保存也可以是一组待输入处理的原始数据,或者一组输出的结果。源文件、目标文件、可执行程序可以称作程序文件,输入/输出数据可称作数据文件。设备文件是指与主机相连的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备看作文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。通常把显示器定义为标准输出文件,一般情况下在屏幕上显示有关信息就是向标准输出文件输出,如前面经常使用的printf()、putchar()函数就是这类输出。键盘通常被指定为标准的输入文件,从键盘上输入就意味着从标准输入文件上输入数据。scanf()、getchar()函数就属于这类输入。上一页下一页返回任务二通信录信息保存从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。(1)ASCII码文件:ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。(2)二进制文件:二进制文件是按二进制的编码方式来存放文件的。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C语言系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入/输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。上一页下一页返回任务二通信录信息保存因此也把这种文件称作“流式文件”。(3)两种文件比较:一般认为,文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。对于空间利用率,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件的任何一个意思至少是一个字符。其次,文本文件的可读性要好些,存储要花费转换时间(读/写要编/译码),而二进制文件的可读性差,存储不存在转换时间(读/写不要编/译码,直接写值)。2.文件打开函数fopen()上一页下一页返回任务二通信录信息保存fopen()函数用来打开一个文件,其调用的一般形式为“文件指针名=fopen(文件名,使用文件方式)”。其中,“文件指针名”必须是被说明为FILE类型的指针变量,“文件名”是被打开文件的文件名。“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。文件的打开方式见表8-1。打开方式中对应的字符所代表的含义如下:(1)r(read):读;(2)w(write):写;(3)a(append):追加;上一页下一页返回任务二通信录信息保存(4)t(text):文本文件,可省略不写;(5)b(binary):二进制文件;(6)+:读和写。注意:(1)凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读。(2)用“w”打开文件时,能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。上一页下一页返回任务二通信录信息保存(3)若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件,但此时该文件必须是存在的,否则将会出错。(4)在打开一个文件时,如果出错,fopen()函数将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。3.fclose()函数fclose()函数主要用来关闭文件操作,调用的一般形式是“fclose(文件指针);”,例如“fclose(fp);”。正常完成关闭文件操作时,fclose()函数的返回值为0。如返回非零值则表示有错误发生。上一页下一页返回任务二通信录信息保存4.格式化读/写函数fscanf()和fprintf()fscanf()函数和fprintf()函数与前面使用的scanf()和printf()函数的功能相似,都是格式化读/写函数。两者的区别在于fscanf()函数和fprintf()函数的读/写对象不是键盘和显示器,而是磁盘文件。这两个函数的调用格式为:fscanf(文件指针,格式字符串,输入表列);fprintf(文件指针,格式字符串,输出表列);5.字符读/写函数fgetc()和fputc()上一页下一页返回任务二通信录信息保存字符读/写函数fgetc()和fputc()是以字符(字节)为单位的读/写函数。每次可从文件读出或向文件写入一个字符。(1)fgetc()函数的功能是从指定的文件中读一个字符,函数调用的形式为:字符变量=fgetc(文件指针);(2)fputc()函数的功能是把一个字符写入指定的文件中,函数调用的形式为:fputc(字符量,文件指针);其中,待写入的字符量可以是字符常量或变量,上一页下一页返回任务二通信录信息保存6.字符串读/写函数fgets()和fputs()(1)fgets()函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:fgets(字符数组名,n,文件指针);其中n是一个正整数,表示从文件中读出的字符串不超过n-1个字符。在读入的最后一个字符后加上串结束标志“\0”,在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。上一页下一页返回任务二通信录信息保存(2)fputs()函数的功能是向指定的文件写入一个字符串,其调用形式为:fputs(字符串,文件指针);其中字符串可以是字符串常量,也可以是字符数组名,或指针变量。上一页返回任务三从文件中读取通信录信息任务分析通信录信息文本文件的读取,通过以下几个步骤来实现:(1)按只读方式打开文本文件;(2)将信息从文本文件读到缓冲区,每次读取一行;(3)在屏幕上显示读取信息。任务实施步骤一:以只读方式打开文本文件。FILE*fp;下一页返回任务三从文件中读取通信录信息if((fp=fopen(“record.

txt”,“r”))==NULL)//判断文件是否存在,如果不存在则退出{printf("FailtoLoadFile");exit(1);}步骤二:声明一个缓冲区字符数组,用来保存从文件中读取出来的每一行数据,然后在屏幕上显示该字符数组。charbuf[1024];/*缓冲区*/上一页下一页返回任务三从文件中读取通信录信息fgets(buf,1024,fp);/*将文本文件中(1024-1)个字符数据读取到缓冲区*/len=strlen(buf);/*缓冲区字符长度*/步骤三:循环读取文本文件数据,并同时显示到屏幕上,具体如程序8-6所示。voidLoadFile(){charbuf[1024];/*缓冲区字符数组*/FILE*fp;/*文件指针*/上一页下一页返回任务三从文件中读取通信录信息intlen;/*行字符个数*/if((fp=fopen("record.

txt","r"))==NULL){printf("FailtoLoadFile");exit(1);}while(fgets(buf,1024,fp)!=NULL){上一页下一页返回任务三从文件中读取通信录信息len=strlen(buf);/*缓冲区字符长度*/buf[len-1]='\0';/*去掉换行符*/printf("%s\n",buf);}fclose(fp);}上一页返回任务四文件复制任务分析通信录信息文本文件复制功能,通过以下几个步骤来实现:(1)以只读方式打开源通信录信息文本文件;(2)判断目标文件是否存在,如果不存在则创建目标文件;(3)实现源文本文件和目标文本文件中内容的复制。任务实施在进行任务实施过程中,要明确文件复制流程,如图8-2所示。下一页返回任务四文件复制首先判断源文件是否存在,如果存在,以只读方式打开,如果不存在则返回;然后判断目标文件是否存在,如果不存在则创建目标文件,最后通过循环读取源文件,并不断向目标文件中写入数据。具体步骤如下:步骤一:以只读方式打开源文件。FILE*fpSrc,*fpDest;//定义两个指向文件的指针fpSrc=fopen("record.

txt","rb");//以读取二进制的方式打开源文件if(fpSrc==NULL){上一页下一页返回任务四文件复制printf(“Sourcefileopenfailure.

”);//源文件不存在的时候提示错误}步骤二:判断目标文件是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论