在 C 中通过命令行传递整数?
Passing a integer through command line in C?
我想知道是否有人可以解释如何通过命令行传递参数?我真的很困惑它是如何工作的。现在我正试图将一个整数传递给主程序。我该怎么做呢?
编辑:在没有转换 [-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);
}
C 中 main 函数的签名是这样的:
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);
}
您可能还想在打印语句中添加换行符以提高可读性。
我想知道是否有人可以解释如何通过命令行传递参数?我真的很困惑它是如何工作的。现在我正试图将一个整数传递给主程序。我该怎么做呢?
编辑:在没有转换 [-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);
}
C 中 main 函数的签名是这样的:
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);
}
您可能还想在打印语句中添加换行符以提高可读性。