我在使用这段代码时遇到问题:
while(scanf("%d",&numOfPlayers)!=1){
printf("Please enter the right number of players");
}
我的目的是从用户那里读取一个数字,并一直询问,只要输入不是int。例如,当我运行这段代码并输入'r‘时,我陷入了无限循环。可能的问题是什么,我如何改进它?
发布于 2010-05-16 02:59:58
如果scanf()
无法读取输入,那么它实际上并不读取输入,因此在示例中它会反复读取相同的输入。您可以像这样丢弃无效的输入:
while(scanf("%d",&numOfPlayers)!=1){
scanf("%s");
printf("Please enter the right number of players\n");
}
发布于 2010-05-16 02:50:17
尝试将字符串扫描到缓冲区中,然后使用sscanf()在该字符串中搜索您的号码。
发布于 2010-05-16 03:23:35
来自comp.lang.c常见问题解答:Why does everyone say not to use scanf
? What should I use instead?
https://stackoverflow.com/questions/2841324
复制相似问题