下面的代码即使使用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/

10-11 19:31
查看更多