- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 文件2
第九章 文件 主要内容: §9.1 文件与文件指针类型 §9.2 文件的打开和关闭 §9.3 读写函数 §9.4 文件的定位和随机读写 §9.5 文件的出错检测 §9.1 文件与文件指针类型 文件:存储在外部介质(如软盘、硬盘、光盘等)上的数据的集合。文件以文件名作为标识符。 数据的输入和输出:在计算机中,数据的输入和输出都是相对内存而言。 输入:将数据从磁盘文件或输入设备读入内存称为输入 输出从内存写到磁盘文件或输出设备称为输出 文件的组织形式 两种组织形式 ASCII形式(文本形式):每一个字节放一个ASCII代码,代表一个字符 二进制形式:把数据按其在内存中的存储形式原样输出到磁盘上存放 二、文件指针 指向文件的指针变量的定义: FILE *变量名; 如:FILE *fp; 则定义了指针变量fp是一个指向文件的指针。 注意: 类型FILE定义在头文件stdio.h中,因此使用FILE须 #include stdio.h §9.2 文件的打开和关闭 文件使用前,应先将文件打开到内存中的文件缓冲区,使用之后应将文件关闭,即把文件缓冲区中的数据回存到文件,然后释放文件缓冲区。 打开文件的函数:fopen()函数关闭文件的函数:fclose()函数 一、文件的打开 方法: FILE *fp;fp=fopen(文件名,打开方式); 功能:fopen()函数将指定文件以指定方式打开在文件缓冲区,返回缓冲区的首地址并赋给fp,于是fp指向所打开的文件。 文件的打开方式(P286表9-1) 二、文件的关闭 方法: fclose(文件指针);例如:fclose(fp);功能:将指针fp指向的文件关闭。所谓文件关闭就是文件指针与文件的指向关系中断。 §9.3 文件读写函数 文件的读写函数: fgetc( )和fputc( ):读写一个字符 fgets( )和fputs( ):读写一个字符串 fread( )和fwrite( ):读写一个数据块 fscanf( )和fprintf( ):格式化读写一组数据 1、读字符函数:fgetc(文件指针) 功能: 从“文件指针”所指文件中读出一个字符 文件的位置指针 位置指针:在文件内部有一个位置指针指向文件的当前读写位置。 P288例9.1 将键盘上输入的一个字符串(以“@”作为结束字符),以ASCII码形式存储到一个磁盘文件中。 #include stdio.h void main() { FILE *fp; char ch,filename[10]; scanf(%s,filename); fp=fopen(filename,w); /*打开文件*/ for( ; (ch=getchar()) != @ ; ) fputc(ch,fp); fclose(fp); /*关闭文件*/ } 例9.2 顺序显示例9.1创建的磁盘ASCII码文件。 例9.2 顺序显示例9.1创建的磁盘ASCII码文件。解法2 二、字符串读写函数 三、数据块读写函数 一般用于二进制文件的读写,将文件中的一块或多块数据读到一个变量或一个数组中,或将一个变量或一个数组的内容写到文件中。 例4 从键盘上输入4个学生的数据到文件,再从文件输出 例4 从键盘上输入4个学生的数据到文件,再从文件输出(续) 例4 从键盘上输入4个学生的数据到文件,再从文件输出(续) 四、格式化读写函数 一般用于文本文件的格式化读写。 1、格式化读函数: fscanf(fp,格式字符串,输入项地址表列); 功能:从fp所指文件中,按格式字符串指定的格式读出若干数据项作为指定输入项的值。 格式化读写函数 fprintf(stdout,格式字符串,输出项表列); 等价于:printf(格式字符串,输出项表列); 例4 从键盘上输入4个学生的数据到文件,再从文件输出(另解) 例4 从键盘上输入4个学生的数据到文件,再从文件输出(另解,续) 文件的读写函数小结 §9.4 文件的定位和随机读写 文件中的位置指针指向当前的读写位置,每进行一次读写操作,位置指针就会自动指向下一个位置。 如果想改变这种规律,就需要强制地使文件指针指向特定的位置,需要使用相应的函数来实现。 一、rewind()函数 调用格式: rewind(fp) 功能:使fp所指文件的位置指针重新返回文件的开头。 返回值:无 二、fseek()函数 调用格式: fseek(fp,位移量,起始点) 适用文件: 二进制文件 功能:在fp所指文件中,以“起始点”为基点移动位置指针,所移动的字节数由“位移量”给定。 注意: “位
文档评论(0)