C语言通过控制台命令行传入参数
Linux 与 windows运行c语言程序
切换到对应目录下
1. gcc hello.c -o hello
2.Linux: ./hello
Windows: hello.exe
int main(){}默认无参数
但在一些情况下想要直接通过在上述过程中第二步就传入参数而不是使用scanf..之类的输入语句就需要使用有参数的main方法:
int main()
{
char str[1000];
printf("input str\n");
scanf("%s", str);
printf("hello %s", str);
return 0;
}
常见的参数形式:
int main(int argc, char *argv[])
int main(int argc, char *argv[])
{
printf("%d\n", argc);
printf("%s\n", argv[0]);
printf("%s\n", argv[1]);
printf("hello world ,%s", argv[1]);
return 0;
}
argc:表示传入了多少个参数
argv:是一个字符二维数组既字符串数组
这儿argc是2,表示两参数 hello.exe 与 123s
可以传入更多:
简单修改代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%d\n", argc);
for (int i = 0; i < argc; i++)
{
printf("argv[%d] %s\n", i, argv[i]);
}
return 0;
}
将argv[]转换成为int可以使用atoi:
int main(int argc, char *argv[])
{
printf("%d\n", argc);
int sum = 0;
for (int i = 0; i < argc; i++)
{
printf("argv[%d] %d\n", i, atoi(argv[i]));
sum += atoi(argv[i]);
}
printf("SUM: %d", sum);
return 0;
}