我如何在'while'循环中输入整数值?

printf("please enter a value for side a: ");
check1 = scanf(" %d*%c", &a);
while(check1 != 1)
    {
    printf("You have entered an invalid value");
    scanf(" %d*%c", &a);
    }
printf("The value for A is: %dn", a);

我试图确保输入的值是一个只有(check1!= 1)的整数。 如果我输入除整数以外的任何值并且while循环占用,它将无限打印“您输入的值无效”,但忽略scanf以重新输入A的值。

我在这之前写了一段代码,它没有(check!= 1)部分,但在while循环内部有一个scanf。

printf("nEnter the denominator number: ");
scanf("%d%*c", &num2);
while ( num2 <= 0 )
    {
    printf("The denominator can not be 0 or less, re enter the number: ");
    scanf("%d%*c", &num2);
    }

注意这第二个代码块的作品。

我怎样才能解决这个问题? 或者有人可以提出一个简单的选择来确保'a'是一个整数? 我对编程非常陌生,scanf是我知道的唯一输入提示。

帮助将不胜感激:)


在while循环中,您需要在使用'scanf'函数后更改'check1'的值。

int a; char* w;
printf("please enter a value for side a: ");
int check1 = scanf(" %d*%c", &a);
while (check1 != 1)
{
    scanf("%s", &w);
    printf("You have entered an invalid valuenplease enter a value for side a: ");
    check1 = scanf(" %d*%c", &a);
}
printf("The value for A is: %dn", a);
链接地址: http://www.djcxy.com/p/72195.html

上一篇: How do I re enter an integer value in a 'while' loop?

下一篇: c program ignores all scanfs after wrong variable type input