- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12.13.2 从键盘读取记录 编写一个函数,从stdin中读取姓名字符串和年龄值,将它们存储在Record对象中。该函数的原型如下: struct Record *getrecord(struct Record *precord); 这个函数的参数是指向已有Record结构对象的指针,其返回值是该对象的地址。因此,可以把该函数的调用作为Record *类型的变元传送给另一个函数 。 12.13.3 将记录写入文件 现在,定义一个函数,将Record对象的成员写入FILE *指针指向的文件中,该函数的原型如下: void writerecord(struct Record *precord, FILE *pFile); 第一个参数是指向Record结构的指针,该结构的姓名和年龄成员要写入文件。第二个参数是文件指针 12.13.4 从文件中读取记录 下面是从文件中读取一个记录的函数的原型: struct Record *readrecord(struct Record *precord, FILE *pFile); 要读取的文件用第二个参数指定,即文件指针。为了方便,返回值是作为第一个参数传送的地址。 12.13.5 写入文件 下面是将任意个记录写入文件的函数原型,其中记录是从键盘上输入的: void writefile(char *filename, char *mode); 第一个参数是要写入的文件名,这表示该函数要打开文件。第二个参数是要使用的文件打开模式。将模式指定为“wb+”,writefile()函数就会删除文件的原始内容,再将数据写入文件。如果文件不存在,就用指定的名称创建一个文件。如果模式指定为“ab+”,记录就追加到已有的文件中,如果文件不存在,就创建一个新文件。 12.13.6 列出文件内容 将文件中的记录输出到标准输出流中的函数原型如下: void listfile(char *filename); 其参数是文件名,所以函数要先打开文件,操作完成后关闭它。 12.13.7 更新已有的文件内容 更新文件中的已有记录增加了复杂性,因为文件中的姓名有不同的长度。不能简单地覆盖已有的记录,因为用于替换的记录可能在原来的空间中放不下。如果新记录的长度与原记录相同,就可以覆盖它,如果不同,就只能将数据写入一个新文件。下面是更新文件的函数的原型: void updatefile(char *filename); 唯一的参数是文件名,所以该函数会查找出要更新的记录,并打开和关闭文件。 12.14 更新已有的文件内容 打开一个二进制文件,以执行更新操作。可以在任意位置执行读写操作 r+b 或 rb+ 打开一个二进制文件,以执行更新操作。将数据添加到文件末尾 a+b或 ab+ 打开或创建一个二进制文件,以执行更新操作。已有的文件内容会被删除 w+b 或 wb+ 打开一个文本文件,以执行更新操作。可以在任意位置执行读写操作 r+ 打开或创建一个文本文件,以执行更新操作。将数据添加到文件末尾 a+ 打开或创建一个文本文件,以执行更新操作。已有的文件内容会被删除 w+ 打开一个二进制文件,以执行读取操作 rb 打开一个二进制文件,以执行追加操作 ab 打开或创建一个二进制文件,以执行写入操作 wb 打开一个文本文件,以执行读取操作 r 打开一个文本文件,以执行追加操作,将数据添加到文件末尾 a 打开或创建一个文本文件,以执行写入操作 w 说 明 模 式 12.15 更新已有的文件内容 本章的最后将前面所学的内容应用于最后一个程序。这个程序比前面的例子短,但很有趣。 问题 分析 解决方案 12.15.1 问题 需要解决的问题是编写一个文件查看器程序,它可以将文件显示为十六进制和字符方式。 12.15.2 分析 这个程序以二进制只读模式打开文件,将信息显示在两列中,第一列是文件中表示为十六进制的字节,第二列是显示为字符的字节。文件名作为一个命令行参数提供,如果没有提供文件名,程序就要求输入文件名。 步骤如下: (1) 如果没有提供文件名,就要求用户输入。 (2) 打开文件。 (3) 读取并显示文件的内容。 12.15.3 解决方案 检查函数main()的参数,就可以确定文件名是否出现在命令行中。前面都忽略了给main()函数传送参数,但是这里可以使用
您可能关注的文档
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD7.ppt
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD8.ppt
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD9.ppt
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD12.ppt
- AutoCAD辅助设计基础与应用 教学课件 彭超 王杰鹏 第7章 尺寸标注与辅助工具.doc
- AutoCAD工程制图实用教程 教学课件 作者 教学课件 作者 支剑锋 第1 3章第3章.ppt
- AutoCAD工程制图实用教程 教学课件 作者 教学课件 作者 支剑锋 第4 8章第7章.ppt
- AutoCAD工程制图实用教程 教学课件 作者 教学课件 作者 支剑锋 第4 8章第8章.ppt
- AutoCAD绘图基础实训教程 教学课件 作者 何文平 第二章 二维绘图.ppt
- AutoCAD绘图基础实训教程 教学课件 作者 何文平 第六章 尺寸标注.ppt
- C#入门经典(第4版)课件 教学课件 作者 978 7 302 18587 1k ch13.ppt
- C#完全参考手册 教学课件 作者 978 7 302 22072 5 0071588418_ch01.pdf
- C#完全参考手册 教学课件 作者 978 7 302 22072 5 0071588418_TOC.pdf
- C#网络编程及应用 教学课件 作者 刘瑞新 第01章 C#.NET概述.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第02章 C#数据类型.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第03章 C# 语 句.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第04章 类.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第06章 设计窗体和控件.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第07章 ADO.NET与数据操作.ppt
- C#网络编程及应用 教学课件 作者 刘瑞新 第12章 FTP协议开发.ppt
最近下载
- 人教版(PEP)小学六年级英语上册第四单元Unit 4 A Let’s talk精品课件.pptx VIP
- 2025中级保育师资格考试题库资料及答案(浓缩400题).pdf VIP
- 革命圣地西柏坡七言诗句.docx VIP
- (必会)中级保育师资格近年考试真题题库汇总(300题).docx VIP
- FSSC22000 V6食品安全管理体系管理手册 .pdf VIP
- 建筑工程图集 16J914-1:公用建筑卫生间.pdf VIP
- 外研版(2021)中职英语基础模块1 Unit 5 We Have Only One Earth For Better Performance 教案.docx VIP
- 07J912-1变配电所图集.pdf VIP
- 耳鼻咽喉科专科护士授权理论考试试题.docx VIP
- 工程项目保修期的工作安排措施.doc VIP
文档评论(0)