gpt4 book ai didi

C语言,如何检查给定输入是字符还是正整数

转载 作者:行者123 更新时间:2023-11-30 16:27:20 25 4
gpt4 key购买 nike

我想知道如何在这种情况下继续从键盘获取输入:如果给定的输入是正数,则它继续使用代码如果给定的输入是负数或字母,则必须打印“插入”一个正数”,然后再次请求另一个输入,直到得到正确的输入。关于负数和正数输入,我编写的代码效果很好,但当我输入字母时它会出错。我尝试的检查如下

chk=isalpha(n);
while(!chk || n<0)
{
printf("Inserire un intero positivo \n");
scanf("%d", &n);
chk=isalpha(n);
}
printf("%d\n%d\n", t1, t2);

在这种情况下,如果我输入一个负数,它会正常工作,但如果我输入一个字母,printf 就会循环。我也尝试过while(isalpha(n) || n<0)我将为您跳过一些其他代码。请帮我解决这个问题

最佳答案

您可以检查 scanf 的返回值,如果 char 返回 0,并且您需要清除缓冲区才能停止 scanf消耗相同的角色。

示例:

int ret = 0;
do
{
char c;
while ((c = getchar()) != '\n' && c != EOF) { } /* to clear the bad characters*/

printf("Inserire un intero positivo \n");
ret = scanf("%d", &n);
}while(!ret || n<0);

关于C语言,如何检查给定输入是字符还是正整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767302/

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