C初学者在这里。对于下面的程序,每当用户输入字符或字符串时,就会进入无限循环。在仍然使用scanf的情况下如何解决此问题?与使用scanf相比,编写此程序的更好方法是什么?感谢那些会回答的人。
#include <stdio.h>
#include <ctype.h>
int main() {
int rounds = 5;
do {
printf("Preferred number of rounds per game. ENTER NUMBERS ONLY: ");
scanf("%d", &rounds);
} while(isdigit(rounds) == 0);
return 0;
}
我会说只有两个“修复程序”。
保留scanf
通话,疣和所有通话。当scanf
需要数字时,请小心不要输入非数字。
放弃scanf
并使用其他东西。我们刚刚在这个新问题上讨论了这种策略。
使用scanf
完后,总是很想尝试“修复”它,因此这里可能潜藏着第三个答案,解释了如何在仍在使用时做得更好,更友好,更容错的输入scanf
。但是,我认为这是一个傻瓜的事,是在浪费时间。对scanf
许多缺陷的简单,明显的修复方法本身并不完善,并且还有其他缺陷。与scanf
改写不使用的程序相比,您可能花费更多的时间来尝试修复正在使用的程序scanf
,并且scanf
无论如何,使用不改写将获得总体上更好的结果(更不用说更干净的程序了)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句