- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言.pptc语言ppt
* 5. 文件的定位 文件位置指针 指示当前的读写位置,读写完一个字符后,指针自动指向下一个单元。 文件定位的意义 在文件中根据需要读取指定数据,如在大规模数据集中读出一个子集 文件位置指针相关函数 回到文件开始位置:rewind 随机定位函数:fseek 获知当前的位置:ftell * 函数说明 void rewind( FILE *stream ); 功能:将stream指示的文件中位置指针置于文件开头 int fseek( FILE *stream, long offset, int origin ); offset:位移量 origin: 起始点 SEEK_CUR:Current position of file pointer SEEK_END:End of file SEEK_SET:Beginning of file long ftell( FILE *stream ); 功能:返回stream所指向的文件中的读写位置 * 例,全校学生成绩存储文件 数据项序号 存储位置 存储内容 0 0 校名,班级数n,班级数据起始地址ClassAddr,课程数,课程1信息,…,课程k信息 1 ClassAddr (班级1,Addr1), …, (班级n,Addrn) 2 Addr1 (班级1人数x1,该班第1个学生信息,…,第x1个学生信息),每个学生的信息由(学号,姓名,课程1成绩,…,课程k成绩)构成 … … … n + 1 Addrn (班级n人数xn,该班第1个学生信息,…,该班第xn个学生信息) 设有全校各班数据文件如下 * 例,数据查询1 1. 给定班级号,查出全班所有学生所有课程成绩 查询路径 读入ClassAddr 顺序读入班级号与给定班级号比较 若找到,则读入该班级学生数据的存储位置Addri,否则返回 读入该班级人数xi,从位置Addri + 4开始的xi个学生数据记录即为查找结果。 查询时间代价 与(全校班级数+班级平均学生数)成正比 结论 有了这个文件设计,查询大大提高 * 例,数据查询1 2. 给定班级号和学号,查询指定学生的成绩 查询路径 读入ClassAddr 顺序读入班级号与给定班级号比较 若找到,则读入该班级学生数据的存储位置Addri,否则返回 读入该班级人数xi,从位置Addri + 4开始顺序查找与给定学号匹配的学生数据记录即为查找结果。 时间代价 与(全校班级数+班级平均学生数)成正比 结论 有了这个文件设计,查询会大大提高 * 思考如下两个查询 3. 只给定学号,查询指定学生的成绩 本文件结构设计对该查询的效率影响如何? 4. 给定班级号和课程号,查询该班级所有学生的该门课程的成绩 本文件结构是否适合于按列查询? * * 五、标准错误流 * 1. 标准错误流 输出出错信息是希望显示到屏幕供人读。通过stdout不合适:输出定向到文件也使出错信息送到文件。 送到标准错误流stderr的信息不受定向影响。改造前面程序cat,只需要改动一个语句: fprintf(stderr,%s, cant open in file: %s\n, name, *argv); 文件错误检查: int ferror(FILE *stream) IO出错时设置相关流的出错标志变量。ferror检查流的出错标志。当stream的状态变量设置时返回非0。 错误标志复位(清除)函数 void clearerr(FILE *stream) 使文件错误标志和文件结束标志置为0。 * 2. 标准库中的错误处理 为检查程序执行中出错,库提供了一些机制。 每个C系统定义了一组错误编号,0表示无错,其余值表示各种错误。 一些函数出错时自动给状态变量errno设错误编号,还定义了相应的信息串。见errno.h。 打印当时错误信息: void perror(char *s) 检查当时错误编号(perror调用之前的最近错误),把对应信息串送到stderr。输出形式: 字符串s 冒号 错误信息串 换行 * * 六、带结构文件示例 BMP文件结构 (自学,供参考) * BMP文件组成 BMP文件由以下四部分组成 文件头—BITMAPFILEHEADER 位图信息头—BITMAPINFOHEADER 颜色信息—RGBQUAD 实际的图形数据—字节序列表示的每个点的颜色 * BMP文件头 typedef struct tagBITMAPFILEHEADER { WORD bfType; // 位图文件的类型,必须为BM DWORD bfSize; // 位图文件的大小,以字节为单位 WORD bfReserved1; // 位图文件保留字,必须
您可能关注的文档
- 7.1.2三角形的高中线与角平分线7.1.2三角形的高、中线与角平分线.ppt
- 79系统精讲-妊娠、娩和产褥期-第二节 妊娠期妇女的护理79系统精讲-妊娠、分娩和产褥期-第二节 妊娠期妇女的护理.doc
- 751-生产过程控制序-090916751-生产过程控制程序-090916.doc
- 6第五章 主要业务的计-no.1货币资金业务设计6第五章 主要业务的设计-no.1货币资金业务设计.ppt
- 7、4平行线的性质A.ppt
- 7 奇怪的大石头7 怪的大石头.ppt
- 7AUnit1教案7Unit1教案.doc
- 7、小数认识与统计复课习课.ppt
- 7.金属和半导体的接触.ppt
- 7课《我不是最弱小的课件》课件.ppt
文档评论(0)