我希望用户输入一个 8 位数的帐号。除非您有多个字母,否则我拥有的代码似乎适用于所有内容,即:“bbb”作为输入。如果发生这种情况,它会运行 while 循环 3 次,显示 printf,但不要求另一个输入。
欢迎任何有关如何解决此问题或更好的解决方法的意见!
现在,我正在使用:
#include <stdio.h>
int main()
{
int return_val = 0;
int account_number = 0;
int within_range = 0;
printf("Please enter your 8 digit account number:\n");
return_val = scanf("%d", &account_number);
getchar();
getchar();
if((account_number > 9999999) && (account_number < 99999999))
{
within_range = 1;
}
while ((return_val != 1) || (within_range != 1))
{
printf("Invalid account number. Account number must be 8 digits.\n");
printf("Please enter your 8 digit account number: \n");
//scanf("%d", &clear);
return_val = scanf("%d", &account_number);
getchar();
getchar();
if((account_number > 9999999) && (account_number < 99999999))
{
within_range = 1;
}
}
printf("Account #: %d", account_number);
}