出现问题
在写C代码时,我遇到了需要输入数字但不能输入其他字符(如字母、特殊符号)的情况,如充值金额时,如果输入非数字需要给出提示。我刚开始使用常规的输入和判断方法:
scanf("%f", &num);
if(num <= 0)
{
printf("不能输入非负数\n");
}
虽然能够编译通过,但会在运行时输入非数字字符会出现段错误(用valgrind调试时),所以这种方法肯定是不能用的。
解决方法
使用字符数组来进行判断,然后通过atof()函数转成float类型的数据,代码如下:
#include <stdio.h>