gpt4 book ai didi

c - scanf出错后输入检查

转载 作者:行者123 更新时间:2023-11-30 15:27:47 28 4
gpt4 key购买 nike

这是一个函数的一部分,它应该扫描 0 到 100 之间的整数。当用户输入一个字符时,程序就会出错。有人有主意吗? iv'e尝试了像这样的组合条件:if(scanf("%d",&test)&&(test<=100&&test>=0))没成功...

while(i!=4)
{
printf("\nPlease enter your homework grade: ");
if(scanf("%d",&hw))
{
++i;
}
if(hw<=100&&hw>=0)
{
++i;
}
printf("\nPlease enter your test grade: ");
if(scanf("%d",&test))
{
++i;
}
if(test<=100&&test>=0)
{
++i;
}
else
{
printf("\nPlease re-enter the required details\n");
i=0;
}
}

最佳答案

当使用 %d 读取字符时,它的 ASCII 值将存储在内存中。
如果您需要整数证明机制,请使用以下代码。获取用户输入的字符串,检查是否存在任何字符,如果存在则返回错误,否则将该字符串转换为整数并使用它进行进一步处理。

char n[4];  /* To store max of 3 char's `100` including '\0' */
int i=0, flag=1;
scanf("%3s", n);

while(n[i] != '\0'){
flag = isdigit(n[i]);

if (!flag)
break;
i++;
}

if(flag)
{
i=atoi(n);
printf("%d", i);
}
else
{
printf("it's not integer");
}

关于c - scanf出错后输入检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26842415/

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