プログラムの引数を double に変換したい。簡単: プログラムに double 値を引数として渡したい。しかし、それを正しくするために、変換エラーを検出したかったのです。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 が出力されます。