第二讲和电话本一起成长.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲和电话本一起成长

第二讲 和电话本一起成长 如何学好软件开发? 写程序、写程序、写程序……………….. 不是仅仅写一些“示例”程序,而是写好一个个具有完整功能的“能用”的程序 这将不仅仅涉及到一两个独立的知识点,而是一系列的问题 本章将围绕一个电话本程序展开 本章的学习方法: 大致查看程序结构 调试、调试、调试…… 提前预习程序 代码的编写规范 开始电话本的编写之前,先确定好一些基本的代码编写规范 左边的代码好看,还是右边的代码好看? 代码的编写规范 右边的代码没有缩进,行与行之间完全对齐,一团乱麻 左边代码都空了两格 右边代码==和!=两边没有空格,而左边有,让这两个符号很显眼 左边代码类名前,以“C”开头;函数名中每个单词首字母大写;成员数据以m_开头 类、函数、变量的名称命名有意义,如HandleNeeded,是否需要句柄;m_handle即代表句柄 关键点3:如何读写文件 代码2.7 为什么没有任何输出? 单步调试F10 为什么fp==NULL? 查看反汇编窗口 9: FILE *fp = fopen(c:\temp.txt, w); 004113FA push 415780h 004113FF push 415770h call dword ptr ds:[004182D0h] 查看0x415780和0x415770两处地址的内容 内存中的字符串不再是“c:\temp.txt”,怎么回事? “\”是转义字符,如“\n”等。若非要输入“\”,则输入“\\” 关键点3:如何读写文件 代码2.7 单独调试,在fputs处停,观察字符串编码 ‘\n’的编码是0A——换行符 使用ultraeditor打开temp.txt,发现字符串末尾都加上了0D 0A。\n的编码不是0A吗,怎么又多出了OD?0D是\r的编码——回车符 猜想:fputs函数遇到0A时,就将其变成0D 0A写入文件 实证:fputs(“Hello World!\r\n”, fp),在使用ultraeditor查看 显示:0D 0D 0A 注意用fgets读出时,不会多读出自动添加的0D 关键点3:如何读写文件 Windows的文本文件换行标志为0D 0A unix/linux的换行标志为0A 这导致了linux下生成的文本文件用windows的记事本查看时,没有换行效果,字串中还夹杂黑色方块符号 关键点3:如何读写文件 fgetc函数从文件中读取一个字节 int fgetc(FILE *stream) 返回文件中的一个字节,出错或文件尾,则返回EOF 能否使用fgetc函数,实现读取一行的功能,并且能区分是unix风格还是windows风格 作业2 任务:使用fgetc实现fgets的功能 要求:提供如下函数: char *ReadALine(char *buf, int n, FILE *fp); 参数与返回值的含义,同fgets 要同时能处理unix风格和windows风格的文本文件 并同时提供测试ReadALine函数的程序 关键点3:如何读写文件 fwrite函数:每次I/O操作读写某种数量的对象,而每个对象具有指定的长度 例如,可读写一个二进制数组、结构 函数原型 size_t fread(void *ptr, size_t size, size_t nobj, FILE *fp); size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp); 关键点3:如何读写文件 参数 第一个参数ptr:用于读写的缓冲区 第二个参数size:每个对象的大小 第三个参数nobj:要读写的对象个数 第四个参数fp:文件指针 返回值 返回读/写的对象数 关键点3:如何读写文件 读写一个二进制数组 float data[10]; fwrite(data, sizeof(float), 4, fp); 读写一个结构 struct{ int a; int b; }item; fwrite(item, sizeof(item), 1, fp); 关键点3:如何读写文件 代码2.8——使用fwrite代替fputs 为什么使用fwrite,依然有0D 0A,而不仅仅是0A? 有时候百度有哪些信誉好的足球投注网站不佳,可通过google查找英文资料 With the mode specifiers above the file is open as a text file. In order to open a file as a binary file, a b character has to be include

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档