我在练习 C 语言时编写了这段代码。但显然这段代码不会倒回输入。因此,当我输入一些不同于 的数据类型时int
,它应该回到while
循环的开头并再次开始提问。但它并没有这样做,它只是无限地打印东西。似乎它不会倒带缓冲区中的内容。我想知道为什么会这样。我使用在线编译器,因为我的环境不允许下载 Visual Studio 或任何编译器。
void main()
{
char account[64];
char password[64];
int i, rAns;
while (1)
{
printf("1.already a member? Log in\n");
printf("2.register\n");
if (scanf("%d", &rAns) == 0)
{
printf("enter right answer\n");
rewind(stdin);
}
else
{
if (rAns < 1 || rAns > 2)
{
printf("enter one of the options\n");
}
else
{
break;
}
}
}
}