创建友好的用户界面——使用缓冲输入
前言
大部分人偶尔会写一些中看不中用的程序。还好C提供了大量的工具让输入更顺畅,处理过程更顺畅,处理过程更顺利,不过,学习这些工具会导致新的问题。本篇博文的目标是:指导读者解决这些问题并创建更友好的用户界面,让交互数据输入更方便,减少输入错误的影响。
使用数据缓冲输入
缓冲输入用起来很方便,因为在把输入发送给程序之前,用户可以编辑输入。但是输入字符时,它也会给程序员带来麻烦。话不多说让我们看下面这段最初的猜谜程序。
撇开这个糟糕的算法不说,我们注意每输入一个n时,程序打印两条消息。这是由于程序读取n作为用户否定了数字1,然后还读取了一个换行字符作为用户否定了数字2.
下面介绍一下解决这个问题的其中一种方法,使用while循环丢弃输入行最后的剩余内容,包括换行符。这种方法的优点是,能把no和no way这样的响应视为简单的n。程序如下图所示:
这的确解决了换行符的问题。但是,该程序还是会把f视为n。我们用if语句筛选其他响应。首先,添加一个char类型的变量储存类型响应:
char response;
修改后如下:
在编写交互式程序时,应先预料到用户可能会输入错误,然后设计程序处理用户的错误输入,在用户出错时通知用户再次输入。
当然,无论你的提示写的多么清楚,总有人误解,然后抱怨这个程序设计的多么糟糕。下篇继续讲解混合数值和字符输入。
想要了解更多的C/C++知识以及相关的就业指导,欢迎加入下面群聊,邀请码 灵狐(不填不通过哦)