控制台菜单选项的实现

上传人:xiao****1972 文档编号:84798575 上传时间:2019-03-04 格式:DOC 页数:2 大小:27.16KB
返回 下载 相关 举报
控制台菜单选项的实现_第1页
第1页 / 共2页
控制台菜单选项的实现_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《控制台菜单选项的实现》由会员分享,可在线阅读,更多相关《控制台菜单选项的实现(2页珍藏版)》请在金锄头文库上搜索。

1、控制台菜单选项的实现(1)使用ifelse入门 声明:在这一个系列中本着一题多解,步步深入以及尽量降低初学者的阅读难度减少枝叶代码的精神,很多细节都没有处理。例如举的例子中的函数的返回值都是void,函数中间没有安全检查,及其它的一些问题,通过例子中的几十行代码不可能做的面面俱到,在实际编程中是不能这样的,请同学们不要盲目效仿。 要想成为一名优秀的软件工程师,你必须对自己的代码精益求精,哪怕是最简单的问题也需要仔细考虑,在尽量减少Bug出现的可能性的同时还需要提高程序的扩展性。下面就举一个大家认为很简单,也非常熟悉的一个控制台菜单选项程序。第一个版本V0.1使用if else做分支。这个可能是

2、初学者最先想到的方式。程序清单 1用if else作分支处理(V0.1)void CmdRunning() int iCmdNum; do printf(请选择:0. 退出;1. 新建文件;2. 打开文件;3.保存文件n); scanf(%d,& iCmdNum); if (0 = iCmdNum) printf(谢谢使用,再见!n); else if (1 = iCmdNum) CreateFile(); else if (2 = iCmdNum) OpenFile(); else if (3 = iCmdNum) SaveFile(); else printf(对不起,你选择的数字不存在,

3、请重新选择!n); while(iCmdNum!=0); 细心的同学可能会发现,这段程序存在一个很严重的Bug,比如,运行程序后输入字符a(非数字),回车,死循环出现了。为什么会出现这种情况呢?原因是scanf只能将缓冲区中的数字(使用了%d)读入iCmdNum,并清空缓冲区,而我们输入的是非数字,那么scanf读入失败,失败了它也就不会去清空缓冲区,这样造成的结果就是,我们不需要再输入其它字符,scanf每次都会去读缓冲区,每次都失败,每次都不会清空缓冲区,当下次再来读时发现缓冲区中有数据就不会停止等用户输入,接着又进入下一次的循环,死循环就形成了。 祝大家中秋快乐!我的一位朋友给我的短信“祝中秋乐在工作中”,于是发了这篇博文。对于初学者来说,这是一篇非常好的系列训练材料。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号