main函数传递浮点型参数问题
请教各位大侠我想写一个程序,在程序运行时传递两个浮点型变量,例如我的程序test,运行时 ./test 3.15 3.69。
int main(int argc, char *argv[])
{
double test_para;
test_para = strtod(argv[1], NULL);
printf("%f \n", test_par);
printf("%s \n", argv[1]);
return 1;
}
发现%s打印的3.15,但是%f打印的好像是一个地址,无论穿什么参数都一样,哪位大侠能告诉我怎样才能把浮点型参数传到程序中的变量呢,不用scanf。
------解决方案--------------------test_para = atof(argv[1]);
------解决方案--------------------printf("%f \n", test_par); 这个test_par是楼主打错了少了一个a,还是真的另外有这么个变量?
我刚试了楼主的代码,改成test_para之后输出没有问题,说明strtod结果也是正确的。
要不楼主再用gdb看看?
------解决方案--------------------用你的程序试了,没问题。
------解决方案--------------------你试试下面这段代码,注意头文件。如果不包含stdlib.h的话,会出现你说的问题
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char** argv) {
double a1,a2;
a1 = atof (argv[1]);
a2 = atof (argv[2]);
printf("a1=%f,a2=%f\n",a1,a2);
return 0;
}