gpt4 book ai didi

c - 验证整数输入和一般情况

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:23 24 4
gpt4 key购买 nike

我将如何验证用户是否输入了正确的输入,例如对于整数,因为我之前将变量声明为整数。 (意思是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com