Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图只扫描我的 c 程序中允许的类型。我有一个整数变量。我想在用户输入是字符时再次扫描。
int usercount; do{ printf("enter user count"); scanf("%d",&usercount); } while(!isdigit(usercount));
但是当输入是 char 时,它处于无限循环中。有人可以帮忙吗?
该scanf()函数有一个返回值。它告诉您它成功完成了多少“转换”。在这种情况下,如果未能将输入解释为整数,它将返回 0。您的代码应该检查返回值。
scanf()
通常,为了对缓冲输入队列中留下的“东西”不那么敏感,您应该使用 一次读取整行fgets(),然后使用sscanf()(或任何其他解析函数,如strtoul())来解析数据。
fgets()
sscanf()
strtoul()