我正在写一个简单的程序。有三个输入,仅在第一个输入中,我的scanf控制程序有效,但不是100%。当我输入1或2以外的数字或某些字符串如“sdada”时,它可以正常工作,我必须再次正确输入数据。我说它不是100%,因为当我输入类似“12x”的东西时,程序认为这是正确的数据,但当然不是。
在第二个和第三个输入中,当我再次输入一个字符串时,程序认为这是正确的数据,那么为什么它在第一个例子中起作用而在下两个中不起作用?我该如何解决这个“12x”问题?我是初学者,所以感谢你的建议。
这是我的代码:
do {
fflush(stdin);
printf("\nInput: ");
scanf_control1 = scanf("%d",&input);
} while(scanf_control1 = 0 || input < 1 || input > 2);
if (input == 1 || input == 2) {
do {
fflush(stdin);
printf("\nInput 2: ");
scanf_control2 = scanf("%d",&input2);
} while(scanf_control2 = 0);
} else {
do{
fflush(stdin);
printf("\nInput 3: ");
scanf_control3 = scanf("%s", &input3);
} while(scanf_control3 = 0);
}