gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:07 25 4
gpt4 key购买 nike

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

编辑:继续从指针获取初始化使整数没有强制转换 [-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);

}

您可能还想在打印语句中添加换行符以提高可读性。

关于c - 在 C 中通过命令行传递整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com