c - 如何检查它是否是数字并在不是数字时重复

标签 c

即使使用 break;,下面的代码也会无限循环。我正在尝试这样做,以便如果用户输入数字以外的内容,它会再次询问。

int x,y;
while(1)
{
    printf("x: ");
    scanf("%d",&x);
    printf("y: ");
    scanf("%d",&y);
    if(isdigit(x)&&isdigit(y))
    {
        break;
    }
}
printf("X: %d Y: %d",x,y);

最佳答案

x 和 y 永远不会是数字,因为数字范围从 0x30 到 0x39(在 ascii 编码的情况下)。您正在使用 %d 修饰符读取它们,请改用 %c 修饰符。

关于c - 如何检查它是否是数字并在不是数字时重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47275133/

相关文章:

c - 尝试创建一个计算值表,从初始值到最终值增加给定数字

c - 返回结果和通过指针参数分配结果之间的区别?

c - pthread_cond_broadcast 不起作用?

c++ - 奇怪的堆损坏错误

c - 不要正确加密 wincrypt

c - 如何修复 C 中使用 struct dirent 时出现的段错误

c - 有没有办法优化这种数据的排序?

c - 生成n个0到k区间的随机数,n可以大于k

c++ - GEM框架,还是来研究一下GCC吧

c - 如何使用轮询接受多个客户端? (TCP 服务器) (C)