在C中通过命令行传递整数?

我想知道是否有人可以解释如何通过命令行传递参数? 我真的很困惑它是如何工作的。 现在我正试图将一个整数传递给主程序。 我该怎么做呢?

编辑:继续获取初始化从指针生成整数而没有强制转换[-Wint-conversion]错误?

#include  #define PI 3.1416 int main (int argc, char *argv[]) { double r,area, circ; char a = argv[1]; int num = a - '0'; printf("You have entered %d",num); r= num/2; area = PI * r * r; circ= 2 * PI * r; printf ("A circle with a diameter of %d ", num); printf ("has an area of %5.3lf cm2\n", area); printf ("and a circumference of %4.2lf cm.\n", circ); return (0); } 

C中主函数的签名是这样的:

 int main(int argc, char *argv[]); 

argc是传递给程序的参数数量,包括程序名称。

argv是一个数组,包含每个参数作为字符串。

所以如果你这样调用你的程序:

 ./program 10 

argc将是2

argv [0]将是字符串’program’

argv [1]将是字符串’10’

您可以像这样修复您的代码:

 #include  #include  #define PI 3.1416 int main (int argc, char *argv[]) { double r,area, circ; char *a = argv[1]; int num = atoi(a); printf("You have entered %d",num); r= num/2; area = PI * r * r; circ= 2 * PI * r; printf ("A circle with a diameter of %d ", num); printf ("has an area of %5.3lf cm2\n", area); printf ("and a circumference of %4.2lf cm.\n", circ); return (0); } 

您可能还想在print语句中添加换行符。