程序设计基础 ——C语言第9章 文件_第1页
程序设计基础 ——C语言第9章 文件_第2页
程序设计基础 ——C语言第9章 文件_第3页
程序设计基础 ——C语言第9章 文件_第4页
程序设计基础 ——C语言第9章 文件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础 第 9章 文件 1 前面介绍的编程 技术的输入 /输出都只用到键盘和显示器,即在运行程序时,通过键盘输入数据,由显示器显示运行结果。这样,程序中的数据无法保存,每次运行程序时都要重复输入数据,显得很不方便。实际上,我们往往希望程序能长期保存数据,以便程序能在较长时间内持续使用,要做到这一点,就要使用文件 。 比如 学生信息管理,学生信息全部存放在内存中,电源关闭,信息全部消失,下次运行时,又要重新输入。因此,有必要把学生信息存以文件 的形式放在磁盘中。 第 9章 文件 2 文件的打开与关闭 文件概述 文件的读写 第 9章 文件 件的定位 错检测 3 文件概述 文件的分类 文件缓冲区 文件名 什么是文件 文件指针 4 什么是文件 文件 通常是驻留在外部介质 (如磁盘等 )上的,在使用时才调入内存中来 。 文件 可分为 普通文件 和 设备文件 两种。 ( 1) 普通文件 是指驻留在磁盘或其它外部介质上的一个有序数据 集。 ( 2) 设备文件 是指与主机相联的各种外部设备,如显示器、打印机、键盘等 。通常把显示器定义为标准输出文件 ,把 键盘 定义为 标准输入文件。 标准定义了一系列文件操作 函数, 使用时包含头文件 5 文件名 一个文件要有一个唯一的文件标识,以便用户识别和引用。 文件标识包括 三个部分: 文件路径 、 文件名主干 和 文件后缀 。 例如 ,文件 D:xc件路径: D:件名主干: 件后缀: 文件的分类 文件 可分为 二进制码文件 两种。 ( 1) 称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的 例如,十进制数 5678的存储 形式 , 共占用 4个字节 。 ( 2) 二进制文件 是按二进制的编码方式来存放文件的。 例如,十进制数 5678的二进制存储 形式 , 也 是占 4个字节 。 用 式便于 对字符进行逐个处理 ,但占 存储空间较多 。 用 二进制 形式节省 外存空间和转换时间 ,一般 作为中间结果的数值型数据 ,常用 二进制文件保存 。 00110101 00110110 00110111 00111000十进制码 5 6 7 800000000 00000000 00010110 001011107 文件缓冲区 标准采用“缓冲文件系统”处理文件。缓冲区的大小由各个具体的 入文件缓冲区输入文件缓冲区磁盘文件缓冲文件磁盘存取示意图 8 文件指针 每个 被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息 。这些 信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名为 义 定义 文件指针的一般形式如下: 文件指针名 ; 例如: 一般 情况下,每一个文件应该设一个指针变量,使它指向这个文件,以实现对该文件的访问 。 9 文件的打开与关闭 试想 :如何把大象放进冰箱里面 ? 三 个步骤:打开冰箱门,把大象放进去,关闭冰箱门。 打开文件 , 读写 , 关闭文件 。 “打开” 是指为文件建立相应的信息区(用来存放有关文件的信息)和文件缓冲区(用来暂时存放输入输出数据) 。 指定 一个指针变量 指向 打开的 文件,就 可以通过该指针变量对文件进行 读写 了 。 “关闭” 是指撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件,显然就无法进行对文件的读写了 。 10 文件的打开与关闭 用 用 11 用 采用 函数原型如下: 第一 个参数 以是 绝对路径 ,也可以是 相对 路径 。 如果是绝对路径, 作为文件夹的分隔符,这样会带来一些问题,比如要打开以下路径的文件: D:语言将其中的 带来一些问题,因此通常写 成: D: ,不会出现这个问题 。 12 文件使用方式 含义 如果指定的文件不 存在 r ( 只读 ) 为读打开一个已存在的文本文件 出错 w ( 只写 ) 为写打开一个新的文本文件 建立新文件 a ( 追加 ) 向文本文件尾添加数据 建立新文件 ( 只读 ) 为读打开一个已存在的二进制文件 出错 ( 只写 ) 为写打开一个二进制文件 建立新文件 ( 追加 ) 向二进制文件尾添加数据 建立新文件 r+ ( 读写 ) 为读写打开一个文本文件 出错 w+ ( 读写 ) 为读写建立一个新的文本文件 建立新文件 a+ ( 读写 ) 为读写打开一个文本文件 建立新文件 ( 读写 ) 为读写打开一个二进制文件 出错 ( 读写 ) 为读写建立一个新的二进制文件 建立新文件 ( 读写 ) 为读写打开一个二进制文件 建立新文件 第二个参数 13 用 例如: fp=d: “r ”); 再如: fp=r)= n); ); 终止正在执行的程序 。 14 用 一旦 文件使用完毕,要用文件关闭函数 关闭文件。 采用 函数原型如下: 返回 值为 0时,表示关闭文件执行成功,否则返回 为 关闭文件的作用是让文件指针与被被关闭的文件脱离,同时将未满的输出缓冲区数据写入文件并将未满的输入缓冲区数据取出以免数据丢失。例如: 15 文件的读写 格式化读 /写函数 读 /写数据块函数 读 /写字符串函数 读 /写字符函数 16 读 /写字符函数 读字符函数 功能:从文件指针 将该字符的 中,文件指针指向的文件应以只读或读 /写方式打开。例如: ch= 写字符函数 功能:把一个字符写入文件指针 数的返回值为 果写操作成功,则返回写入字符的 则返回 如: a, 17 读 /写字符函数 【程序 9从键盘输入字符并逐个存放到 到输入 #位置,最后在屏幕上输出该文件中的内容。 【算法分析】 ( 1)以写方式打开文件。 ( 2)接收键盘输入的数据。 ( 3)将数据写到文件中。 ( 4)以读方式打开文件。 ( 5)将文件中的数据读到内存变量中。 ( 6)将内存变量输出到屏幕。 18 【 程序 9 # *以只写方式打开文件 */ in=d:w)= n); ); 19 请输入字符串,以 #结束: n); ch=; #) ch, ch=; 20 /*以只读方式打开文件 */ d:r)= n); ); 输出字符串: n); ch=!= /*判断是否到文件尾 */ n); ; 请输入字符串,以 #结束: 输出字符串: 21 读 /写字符串函数 读字符串函数 n, 功能:从文件指针所指向的文件中读入一个长度不超过“ 字符的字符串,并将其存储到字符数组 果输入成功,函数的返回值就是字符数组的首地址,如果到文件尾或失败,就返回 如 : ; , 22 读 /写字符串函数 写字符串函数 功能:将一个字符串写入 中,字符串可以是字符串常量,也可以是字符数组或字符指针。该函数的返回值为 果写操作成功,就返回写入文件的最后一个字符的 则返回 如: 23 【 程序 9编写 一个程序,将一个字符串写入 d盘 后再从该文件中读出该字符串 。 # 50 ; 请输入字符串: n); 24 /*以只写方式打开文件 */ in=d:w)= n); ); /*将字符串 ( 25 /*以只读方式打开文件 */ d:r)= n); ); /*从文件中读出 (, 请输出字符串: n); ; 请输入字符串: 请输出字符串: 6 格式化读 /写函数 格式化读函数 fp,); 功能:按格式字符串 如: i; c; % d%c”,& i,&c); 功能是读取文件指针 别赋值给整型变量 c。 27 格式化读 /写函数 格式化写函数 fp,); 功能:将输出表列中的数据 如: a=3; b=%2d,%a,b); 功能是将变量 2量 以逗号为分隔符 。 28 【 程序 9以格式化的形式对文件进行输入和输出数据操作。 【算法分析】 首先以只写方式打开 入姓名和学号,对每次输入的姓名和学号均以指定方式写入文件中。当输入 束输入,此时写入操作完成,应该关闭文件。重新以只读方式打开文件,按照指定格式读出数据,直到文件结束。读出操作完成后关闭文件 。 # 0; 29 /*以只写方式打开文件 */ fp=d:w)= n); ); 请输入姓名: ); %s, !=0) 请输入学号: ); %& %st%ldn, 请输入姓名: ); %s, 30 /*以只读方式打开文件 */ fp=d:r)= n); ); 姓名 tn); %st%ldn,=%stt%ldn, ; 请输入姓名: 请输入学号: 1 请输入姓名: 请输入学号: 2 请输入姓名: 请输入学号: 3 请输入姓名: 姓名 学号 1 2 3 31 读 /写数据块函数 读数据块函数 pt,n, 功能:从 n个 存入 中 读出的数据块应存入内存的首地址。如: ; 5, 功能是从文件指针 个大小为 数据块,并存入 32 读 /写数据块函数 写数据块函数 n, 功能:从以 n个 写入 如: ; 5, 功能是从以 个大小为 数据块,并存入 33 【 程序 9从键盘输入 5个整数,将其写入 # a5,i; 请输入 5个整数: n); i=0;i 6; /*姓名 */ ; /*五门课程的成绩 */ /*总分 */ s; j; 43 /*以只读二进制文件形式打开文件 fp=)= sn, ; ); 姓名 语文 数学 英语 物理 化学 总分 n); /*文件内部指针指向第二个学生 */ fp,; s, 1 ,=1) %st, j=0;j5;+j) %dt, j); %dn, 44 /*文件内部指针指向文件头 */ s, 1 ,=1) %st, j=0;j5;+j) %dt, j); %dn, ; 姓名 语文 数学 英语 物理 化学 总分 李鹏 141 107 87 146 147 628 黄晓明 128 92 90 123 95 528 45 取文件读写位置 函数 的作用是获取文件的当前读写位置,也就是相对于文件开头的偏移量,按字节计算,函数原型如下: 功能:得到位置指针在文件指针 相对于文件开头的位移量来表示。若函数 的返回值为 表示出错。例如: 0L, 首先将文件的当前位置移到文件的末尾,然后调用函数 位

温馨提示

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

评论

0/150

提交评论