我将如何验证用户是否输入了正确的输入,例如对于整数,因为我之前将变量声明为整数。 (意思是 alpha 会得到数字输入。)
另外,是否有更通用的方法来验证输入和获取输入?除了使用 scanf 之外?
#include <stdio.h>
int main() {
printf("We will check if your number is odd, even, zero or negative \n");
int input;
printf("Enter your number: \n");
scanf("%d", &input);
if (input < 0){
printf("Number is Negative \n");
}
else if (input == 0){
printf("Number is Zero \n");
}
else if (input % 2 == 0){
printf("Number is Even \n");
}
else if (input % 2 == 1){
printf("Number is Odd \n");
}
return 0;
}
最佳答案
使用 scanf()
系列意味着对于给定的转换说明符(在本例中为“%d” -> 整数),输入的语法应该是完美的。
如果您想验证输入语法的正确性,则需要将输入作为一个整体,然后自行解析。
你可以使用例如fgets()
( https://en.cppreference.com/w/c/io/fgets ) 这样做。
一旦您将输入保存在“字符串”(数组或分配的内存中的字符)中,您就可以开始“猜测”它是什么,使用多个 sscanf()
(https://en.cppreference.com/w/c/io/fscanf) .这对已经在内存中的字符串比对输入流要容易得多。因为“部分成功后猜错,从头开始重试”易记难输入。
正如 SomeProgrammerDude 已经评论过的,尝试使用 sscanf()
(在内存中,或在输入中使用 scanf()
)进行扫描的方法是检查返回值;它会告诉您成功或失败。
关于c - 验证整数输入和一般情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52197554/