创建友好的用户界面——使用缓冲输入

前言

大部分人偶尔会写一些中看不中用的程序。还好C提供了大量的工具让输入更顺畅,处理过程更顺畅,处理过程更顺利,不过,学习这些工具会导致新的问题。本篇博文的目标是:指导读者解决这些问题并创建更友好的用户界面,让交互数据输入更方便,减少输入错误的影响。

使用数据缓冲输入


缓冲输入用起来很方便,因为在把输入发送给程序之前,用户可以编辑输入。但是输入字符时,它也会给程序员带来麻烦。话不多说让我们看下面这段最初的猜谜程序。

创建友好的用户界面——使用缓冲输入

撇开这个糟糕的算法不说,我们注意每输入一个n时,程序打印两条消息。这是由于程序读取n作为用户否定了数字1,然后还读取了一个换行字符作为用户否定了数字2.

下面介绍一下解决这个问题的其中一种方法,使用while循环丢弃输入行最后的剩余内容,包括换行符。这种方法的优点是,能把no和no way这样的响应视为简单的n。程序如下图所示:

创建友好的用户界面——使用缓冲输入

这的确解决了换行符的问题。但是,该程序还是会把f视为n。我们用if语句筛选其他响应。首先,添加一个char类型的变量储存类型响应:

char response;

修改后如下:

创建友好的用户界面——使用缓冲输入

在编写交互式程序时,应先预料到用户可能会输入错误,然后设计程序处理用户的错误输入,在用户出错时通知用户再次输入。

当然,无论你的提示写的多么清楚,总有人误解,然后抱怨这个程序设计的多么糟糕。下篇继续讲解混合数值和字符输入。

想要了解更多的C/C++知识以及相关的就业指导,欢迎加入下面群聊,邀请码 灵狐(不填不通过哦)

创建友好的用户界面——使用缓冲输入