版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 文件,高级语言程序设计,莆田学院现代教育技术中心 2004年3月 制作,莆田学院现代教育技术中心 2004年3月,一、C文件概述,C程序与磁盘文件 本章讨论的文件主要是指可供C程序在执行过程中从磁盘读取数据或写入数据的文件。,莆田学院现代教育技术中心 2004年3月,磁盘文件分类,按其存储方式,C文件可以分为: ASCII文件(文本文件) 按数据的ASCII编码方式存放(可用文字编辑软件如“记事本”打开来看)。 二进制文件 按数据在内存中存储的形式原样存放(0和1的集合) C系统在处理这些文件时,并不区分类型,都看成是字符流(即以字节为存取单位)。输入输出字符流的开始和结束只由程序控制
2、而不受物理符号(如回车符)的控制,故称“流式文件”。,莆田学院现代教育技术中心 2004年3月,C程序与文件读写,ANSI C提供四种读写文件的方法,通过四组函数进行: 读写一个字符: fgetc fputc 读写一个字符串: fgets fputs 格式化读写: fscanf fprintf 读写一个“记录”(成“块”读写):fread fwrite 文件读写(文件操作)的基本步骤是: 1、定义文件类型指针变量 2、打开文件 3、读写文件 4、关闭文件,莆田学院现代教育技术中心 2004年3月,二、文件操作,文件打开/关闭程序的基本形式 示例(设文件名为ABC.TXT): main( ) F
3、ILE *fp; /*声明文件型指针变量*/ fp=fopen(“ABC.txt”,“w”); /*按指定文件使用方式打开文件*/ /*输入输出等*/ fclose(fp); /*关闭文件*/ ,莆田学院现代教育技术中心 2004年3月,示例程序说明, FILE *fp; FILE是系统定义的结构体类型。 P310 文件打开后,fp即代表该文件 通常需要判断该文件是否打开 打开成功时,fopen( )返回文件信息区的起始地址,失败则返回0(NULL)。 if (fp=fopen()=NULL) printf(“打开失败”); exit(0); ,莆田学院现代教育技术中心 2004年3月,示例程
4、序说明(续),文件使用方式 P312表13.1 基本方式是 r(只读) w(只写) a(追加) 加b: 对二进制文件 加+ :读写 注意:r和a要求该文件必须存在,否则出错(返回NULL) w为新建文件(如原来存在同名文件,被复盖),莆田学院现代教育技术中心 2004年3月,二、文件操作,文件的读写 P313 设文件指针变量为fp 单字符读写 P314 写入 fputc(ch,fp) 读入 x=fgetc(fp) 遇到文件末时,返回EOF(文 件结束符,即-1) 通常可用while(ch!=EOF) 或while(!feof(fp)控制读取循环。 P314/315 比较: putchar(c)
5、 x=getchar( ),莆田学院现代教育技术中心 2004年3月,文件的读写(二), 字符串读写 P323 写入 fputs(str,fp) 读入 fgets(str,n,fp) 从fp所指文件中读入n-1个字节数据给字符数组str(未尾加0,遇EOF即结束) 比较:puts(str) gets(str),莆田学院现代教育技术中心 2004年3月,示例,#define NULL 0 #define EOF -1 #include FILE *fpr,*fpw; main() char ch; if (fpr=fopen(d:tcTEST.DAT,rw)=NULL) printf(打开失败)
6、; exit(0); if (fpw=fopen(abc.txt,“w)=NULL) printf(打开失败); exit(0); ch=getc(fpr); while (ch!=EOF) printf(%c,ch); fputc(ch,fpw); ch=getc(fpr); fclose(fpr); fclose(fpw); ,运行之,打开两个文件观看结果。 将fpw打开方式改为a后连续运行几次,看看abc.txt的结果。,莆田学院现代教育技术中心 2004年3月,示例,#define NULL 0 #include FILE *fp; char *s=123; main() char c
7、h; clrscr(); if (fp=fopen(d:tca.dat, r+) =NULL) printf(文件打开失败); exit(0); fgets(s,10,fp); puts(s); fputs(Hello,fp); fputs(my friends!,fp); fclose(fp); ,运行之,打开文件a.dat观看结果。 将fp打开方式改为a+后连续运行几次,看看结果。,莆田学院现代教育技术中心 2004年3月,文件的读写(三), 格式化读写 P321 适用于一般实体,如数值型变量。 fscanf(fp,“%d,%f”,莆田学院现代教育技术中心 2004年3月,文件的读写(四)
8、, 读写一个“记录”(成“块”读写) P317 适用于结构体等复杂实体。 写入 fread(p,size,n,fp) 读入 fwrite(p,size,n,fp) p-实体指针 size-字节数 n-多少次 fp-文 件指针 调用成功,返回n值。 示例: P318例13.3,莆田学院现代教育技术中心 2004年3月,文件的定位,文件中有一个位置指针,指向当前读写的位置。顺序读写一个文件时,每读写完一个字符,位置指针自动下移一个字符位置。以下函数可用于强制改变位置指针的位置。 rewind(fp) 使fp所指文件位置指针回到文件开头(以便从头再读写) fseek(fp,n,i) 改变文件的位置指针,莆田学院现代教育技术中心 2004年3月,关于fseek(fp,n,i),fp 文件指针 n 位移量(以起始点为基点,向前移动的字节数,负数 为倒移的字节数) i 起始点,函数ftell(fp)用于获得位置指针在文件中的当前位置(用相对于文件开头的位移量来表示)。,莆田学院现代教育技术中心 2004年3月,示例,以下程序的功能是 。 #include stdio.h main( ) FILE *fp; long int n; fp=fopen(wj.txt,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省淮安市市级名校2025-2026学年初三模拟卷(一)英语试题试卷含解析
- 河北省石家庄市正定县市级名校2026届初三第一轮复习质量检测试题语文试题含解析
- 安徽省蚌埠局属校2026年初三下学期实战考试语文试题含解析
- 陕西省宝鸡市凤翔县达标名校2026届初三中考仿真模拟冲刺考试(六)语文试题含解析
- 2026届江苏省盐城市射阳外国语校初三下学期期末学业质量监测英语试题含解析
- 浙江省台州市椒江区市级名校2025-2026学年初三下学期3月抽测英语试题含解析
- 2026年苏省南京市联合体重点达标名校初三语文试题5月29日第9周测试题含解析
- 跨部门协作沟通会议组织与记录模板
- 跨部门协作沟通会议纪要撰写指南
- 稀有动植物摄影保护承诺书3篇
- 2026年河南农业职业学院单招职业技能测试模拟测试卷附答案
- 疫苗冷链管理培训课件
- DRG付费下医院肾内科运营策略
- T-CECA 20011-2021 含铁含锰地下水接触氧化法给水处理技术规程
- 商铺销售协议书模板
- 2026年安阳职业技术学院单招职业适应性测试必刷测试卷及答案解析(名师系列)
- 中国古代识人方法
- 中烟机械技术中心笔试试题2025
- 基于儿童心理健康发展的智能产品设计
- GB/T 6730.11-2025铁矿石铝含量的测定EDTA滴定法
- 医院污水处理知识培训课件
评论
0/150
提交评论