【发布时间】:2020-04-10 03:30:59
【问题描述】:
我需要检查如果用户输入了一个值,程序仅在该值是[1-8](含)之间的正整数时运行,但如果输入值是字母或单词或没有输入all (Enter),程序再次要求输入
#include <stdio.h>
int main (){
int height;
do {
printf ("Height: ");
scanf ("%i", &height);
}
while (height < 1 || height > 8);
{ .
.
.
.
我正在考虑在 while 验证中添加另一个条件“||(或)”,例如 while “height 与整数不同(!=)”然后做......
但我不知道如何在其他 StackOverflow 问题中检查该语句。希望大家多多指教
【问题讨论】:
-
scanf()返回成功转换的数量,您可以根据需要利用它 -
scanf对于交互式用户输入并不是很有用 -
如果
scanf失败(没有要读取的号码),你必须fflush(stdin) -
@PaulOgilvie 问题是,这将是一个无限循环。刷新标准输入是未定义的,在大多数平台上什么都不做。
标签: c validation input integer