我需要将一个double类型的值传递给我的程序,但以下代码不起作用:
int main(int argc, char *argv[]) {
double ddd;
ddd=atof(argv[1]);
printf("%f\n", ddd);
return 0;
}
如果我以./myprog 3.14
的形式运行我的程序,它仍然会打印出0.000000
。请问有人可以帮忙吗?我需要将一个double类型的值传递给我的程序,但以下代码不起作用:
int main(int argc, char *argv[]) {
double ddd;
ddd=atof(argv[1]);
printf("%f\n", ddd);
return 0;
}
如果我以./myprog 3.14
的形式运行我的程序,它仍然会打印出0.000000
。请问有人可以帮忙吗?我猜你可能忘记包含#include <stdlib.h>
。如果是这样,gcc
将会发出以下警告:
warning: implicit declaration of function 'atof' [-Wimplicit-function-declaration]
请提供您提供的精确输出:0.000000
。
#include <stdlib.h>
解决了问题。但奇怪的是,没有包含 stdlib.h 时,gcc
没有发出任何警告。 - Martin Vegtergcc -W -Wall -Wextra -pedantic
吗? - Kerrek SB#include
和编译输出。 - myradio