我正在进行一个tic-tac-toe最终项目。我要求用户打印他想要填写的框号,然后我使用整数err来获取scanf的返回值。在这种情况下,Scanf应该返回它已经读取的整数的数量,并且我要求读取一个整数,所以只要err!= 1,它就应该进入while循环。但是,这不起作用。
printf("\nBox number: ");
int boxNumber, err;
err = scanf("%d", &boxNumber);
while (err != 1) {
printf("\nWrong input.");
printf("\nBox number: ");
err = scanf("%d", &boxNumber);
}
输入非整数时,输出为:
输入错误。 箱号:
在一个不停的循环中。然后再次调用scanf以供用户输入值的行就好像从不运行一样。 我不知道问题是什么。请帮忙。
在第一个scanf()
失败后,非整数保留在输入流中并阻止任何跟随成功,同时保持永久。
您需要摆脱不可扫描的延迟输入。
请参阅这些文章以选择您喜欢的方法: http://sekrit.de/webdocs/c/beginners-guide-away-from-scanf.html How to read / parse input in C? The FAQ