如何在 'while' 循环中重新输入整数值?
How do I re enter an integer value in a 'while' loop?
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: %d\n", a);
我正在尝试确保输入的值是仅具有 (check1 != 1) 的整数。如果我输入除整数以外的任何内容并且 while 循环参与,它会无限打印 "You have entered an invalid value" 但忽略 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 value\nplease enter a value for side a: ");
check1 = scanf(" %d*%c", &a);
}
printf("The value for A is: %d\n", a);
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: %d\n", a);
我正在尝试确保输入的值是仅具有 (check1 != 1) 的整数。如果我输入除整数以外的任何内容并且 while 循环参与,它会无限打印 "You have entered an invalid value" 但忽略 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 value\nplease enter a value for side a: ");
check1 = scanf(" %d*%c", &a);
}
printf("The value for A is: %d\n", a);