我想知道是否有人可以解释如何通过命令行传递参数?我真的很困惑它是如何工作的。现在我正试图将一个整数传递给主程序。我该怎么做呢?
编辑:继续获取初始化从指针生成整数而没有强制转换[-Wint-conversion]错误?
#include <stdio.h>
#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);
}
答案 0 :(得分:2)
C中主要功能的签名是:
int main(int argc, char *argv[]);
argc是传递给程序的参数数量,包括程序名称。
argv是一个数组,包含每个参数作为字符串。
所以,如果你这样调用你的程序:
./program 10
argc
将为2
argv[0]
将是字符串program
argv[1]
将是字符串10
您可以像这样修复代码:
#include <stdio.h>
#include <stdlib.h>
#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);
}
您可能还想在打印报表中添加换行符以便于阅读。