nos*_*rov 2 c floating-point atof
我创建了一个函数来验证实数的输入。它运行良好,但由于atof()函数0在失败时返回,因此无法0作为输入值输入。任何人都可以帮助解决这个问题?
float validate_float()
{
float num;
char str[8];
do
{
printf("enter a float number:");
fflush(stdin);
gets(str);
num=atof(str);
}
while(num==0);
return num;
}
Run Code Online (Sandbox Code Playgroud)
是的,这是atof().
语法:
double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
Run Code Online (Sandbox Code Playgroud)
注意:要区分实际输入 0和无转换 0,您需要检查endptr.
话虽如此,正如其他人所提到的,