当前位置: 技术问答>linux和unix
main函数传递浮点型参数问题
来源: 互联网 发布时间:2017-03-25
本文导语: 请教各位大侠我想写一个程序,在程序运行时传递两个浮点型变量,例如我的程序test,运行时 ./test 3.15 3.69。 int main(int argc, char *argv[]) { double test_para; test_para = strtod(argv[1], NULL); ...
请教各位大侠我想写一个程序,在程序运行时传递两个浮点型变量,例如我的程序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。
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看看?
我刚试了楼主的代码,改成test_para之后输出没有问题,说明strtod结果也是正确的。
要不楼主再用gdb看看?
|
用你的程序试了,没问题。
|
你试试下面这段代码,注意头文件。如果不包含stdlib.h的话,会出现你说的问题
#include
#include
int main(int argc,char** argv) {
double a1,a2;
a1 = atof (argv[1]);
a2 = atof (argv[2]);
printf("a1=%f,a2=%fn",a1,a2);
return 0;
}