在编写一个函数时,用到了scanf函数,如下:
while (1)
{
printf(" Waiting for the input num(HZ):");
scanf("%d\n",&num);
}
当输入数字时,如250000 、3600000,程序正常。
若一不小心输入:1a,b等字母,scanf函数就不会再让输入数字了。
纠结了半天解决办法是:
char grp[50];
while (1)
{
printf(" Waiting for the input num(HZ):");
gets(grp);
sscanf(grp, "%d", &num);
}
本文介绍了一个使用scanf函数处理数字输入的问题及解决方案。当输入包含非数字字符时,原程序会卡住不再接收输入。通过引入gets和sscanf组合使用,解决了这一问题并确保了程序的健壮性。
556

被折叠的 条评论
为什么被折叠?



