我想将程序参数转换为双精度。很简单:我想将一个双精度值作为参数传递给我的程序。但为了使它正确,我想检测转换错误。我发现这atof
不是一个好的选择,所以我切换到sscanf
. 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
argc --;
argv++;
double s;
int handle =-1;
handle = sscanf(*argv, "%lf", &s);
if(handle == -1)
{
fprintf(stderr, "Invalid input double!\n");
}else{ printf("%f\n", s);}
return 0;
}
但是输入错误,即:./code blabla
它打印出 0.0000000000 怎么了?