【发布时间】:2018-03-01 23:19:26
【问题描述】:
我刚刚开始学习 C 语言,如果您知道实现以下目标的更好方法,我希望您能帮助我清理/简化我的代码。
我想要一个程序询问一个数字,如果找到然后继续打印并结束,但是如果放入其他任何东西(例如字母键),那么我希望程序循环询问一个数字直到给出一个。
我开始使用一个简单的 scanf 输入命令,但是当我尝试检查是否输入了有效数字(如我们定义的那样)时,这似乎进入了无限循环。
所以相反,我已经结束了这个,从网上玩/看,但我很想知道是否有任何更有效的方法!
//
// Name & Age Program
// Created by Ben Warren on 1/3/18.
//
#include <stdio.h>
int main (void)
{
//Setting up variables
int num;
char line[10]; /* this is for input */
//Collecting input
printf("Please enter any number? \t");
scanf("%d", &num);
//If Invalid input
while (num==0)
{
printf("\nTry again:\t");
fgets(line, 10, stdin); //turning input into line array
sscanf(line, "%d",&num); //scaning for number inside line and storing it as 'num'
if (num==0) printf("\nThat's not an number!");
}
//If Valid input
{
printf("\n%d is nice number, thank you! \n\n", num);
*}*
return 0;
}
【问题讨论】:
-
有一个名为 codereview 的专门 Stackexchange-Site 更适合这个问题。
-
有很多关于“如何确保只输入整数”(或浮点数)的问题。简单的“scanf()”格式通常不是答案之一。
标签: c