我正在尝试验证用户是否输入了正确的值以及返回值。他应该输入0到100之间的偶数。
我认为我没错,但是现在我的问题是,用户必须两次输入“ enter”键才能结束scanf功能。
我还有另一种可能避免用户这样做吗?
这里写了我写的代码:
#include <stdio.h>
#include <windows.h>
int main( void )
{
int ok, input = -1;
char c;
while(input < 1 || input > 100 || input%2 != 0) { //repeat loop if Input is not even or betwenn 0 and 100
printf("Enter an odd number between 1 und 100: ");
int ok = scanf("%d%c", &input, &c); //Input is correct if ok = 2 and c = 10'\n'
while((c = getchar()) != '\n' && c != EOF) {} //this loop empties the input buffer to avoid infinite loops if users enters a character
}
printf("You habe chosen the number %d ", input);
getchar();
return 0;
}
我相信您根本不需要while循环。