目录
1.命令行参数
1.1.概念引入
注意当部分代码均在Linux下运行!
再讲环境变量前我们先引入一个概念:命令行参数,那什么是命令行参数呢?我们知道main()函数其实是可以带参数的,再给出定义之前下面我们用一段代码来体会一下什么是命令行参数。
#include<stdio.h>
int main(int argc, char* argv[])
{
for(int i = 0; i < argc; i++)
{
printf("%d: %s\n", i, argv[i]);
}
return 0;
}
如图:在Linux操作系统中我们跑这一段程序,发现结果分别打印了,程序名 + 我们写的一段话的每一部分(这里有以空格为分隔符,分割几份子串),数一数恰好从0-8一共有9份,我们再看回这一段代码,我们可以猜到argc = 9,也就是九个字符串,并且对应着这个指针数组,那么我们可以抽象出来
还是不理解的话,我们可以做一个小demo,命令行版本的计算器。
我们的输入规则为:
程序名 -add num1 num2
程序名 -sub num1 num2 (其中num1,num2计算的数据)
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
if (argc == 4)
{
int num1 = atoi(argv[2]);
int num2 = atoi(argv[3]);
if (strcmp(argv[1], "-add") == 0)
{
printf("%d + %d = %d\n", num1, num2, num1 + num2);
}
else if (strcmp(argv[1], "-sub") == 0)
{
printf("%d - %d = %d\n", num1, num2, num1 - num2);
}
else
{
printf("option illegal\n");
printf("the right input is: process option(-add, -sub) num1 num2\n");
}
}
else
{
printf("input illegal\n");
printf("the right input is: process option(-add, -sub) num1 num2\n");
}
return 0;
}