C++输出输入小结 – C++快速入门05
C++输出输入小结
让编程改变世界
Change the world by program
输入输出小结
今天我是上的是小结课程,目标是对之前的内容进行总结和提升。
注意:小甲鱼希望我们的课程更多的是给大家带来实践编程的体验和培养自身解决问题的能力。
因此,咱这节课主要以讨论几个实例任务作为内容。希望亲爱的童鞋们通过尽可能独立的解决这几个问题。
试炼一号
题目:
这个程序将向用户提出一个“Y/N”问题,然后把用户输入的值赋值给answer变量。
要求:
针对用户输入‘Y’或‘y’和‘N’或‘n’进行过滤;
发掘程序可能存在的任何问题,想想为什么?。
实践开始!
试炼二号
题目:
编写一个“温度单位转换程序”,提示用户以【xx.x C】或【xx.x F】的格式输入。
要求:
如果用户输入的是34.2 C 程序将自动转换为 90.32 F 并输出!
实践开始!
对输入数据进行合法性检查
“不要相信任何程序的输入,尤其是由用户输入的东西”,这是计算机安防工作的基本原则。
往好处说,非法输入会让程序变得毫无用处;
往坏处说,非法输入会导致程序甚至是整个系统崩溃。
因此,知道如何对输入数据进行合法性检查与知道如何接受输入数据同样重要。
这是我们这系列要研究的一个重要课题!
对输入数据进行合法性检查的具体做法取决于具体的变量类型和它们的取值范围。
比较常见的检查项目包括:
检查某个数值是不是一个正数(例如商品的价格、老妈的年龄、老婆的体重)
检查某个数值是不是落在给定的范围(例如女朋友的年龄不能小于0或者大于120吧?)
检查某个字符是不是一个特定的值(例如前边的Y或者N)
前边的程序中我们已经见过了一些用来进行合法性检查的代码,例如question1和question2程序中使用switch()来判断用户是否输入了程序预期的值。
但是呢,还有一些潜伏的问题我们没有发掘出来:例如cin调用失败(无法把一个值赋值给一个变量)时,程序仍会像cin调用成功一样继续自欺欺人。举例……
解决这些问题的办法之一就是对cin 调用的结果不要做任何假设。
cin 对象有几个专门用来报告其工作情况的成员函数,它们将返回一个真/假值来表明cin 的状态。
eof():如果到达文件(或输入)末尾,返回true;
fail():如果cin 无法工作,返回true;
bad():如果cin 因为比较严重的原因(例如内存不足)而无法工作,返回true;
good():如果以上情况都没发生,返回true。
课后作业
- 对question2 的合法性检查你觉得还有什么需要补充的吗?
- 对const 和 # define 发表一下自己的看法吧~
备用视频下载
技术, IT技术, CPP, 视频教程
风险提示及免责条款
市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!
