我只是使用该功能scanf()
。代码如下:
scanf("%d",&a);
printf("%d",a);
当我输入1时,它会像我想要的那样打印1。
但即使我输入 1a,它也会像以前一样打印 1。
当用户输入非整数时((例如)2.3,12ab,1 a)
我想向用户显示“输入整数”之类的警告。
我怎么解决这个问题?
将其全部读入一个字符串fgets()
.
如果您只想让他们输入的所有内容都是一个int
,遍历字符串并寻找isdigit()
在每个字符上,然后当你发现它只是数字时,调用strtod()
,如果没有,则发出错误并重新提示。
如果您希望从同一输入行解析多个内容,那么您需要使用类似的内容来解析字符串strtok()
一次获取一个单独的标记,然后查看每个标记并通过查看每个字符是否为数字来确定它是否为数字isdigit()
或等于'-' '.'
诸如此类。如果是这样,将其解析为数字strtol()
or strtod()
(等等)(取决于您所看到的内容,int 或 float/double。)否则,将标记解析为字符串或发出错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)