main函数argc,argv操作

      使用main(int argc, char *argv[])==main(int argc, char **argv)的基本操作是linux编程的最基本的一步,在windows下也是exe脱离IDE运行的必学技能,程序编译成功后,在cmd下,使用参数输入来运行程序,自己控制程序参数的输入来测试和运行程序。

      1、 int argc, char *argv[]介绍

       int argc代表输入参数的个数,英文全名arguments cout, 以空格来计数,程序名(*.exe)是其第一个参数。

      char *argv[]以字符数组的方式储存参数内容,英文全名arguments vector, argv[1]代表程序名。

 1 #include<iostream>
 2 #include<stdlib.h>
 3 
 4 using namespace std;
 5 
 6 int main(int argc,char *argv[])
 7 {
 8   cout<<"the argc is "<<argc<<endl;
 9   for (int i = 0;i<argc;i++)
10   {
11     cout<<"argv["<<i<<"] is "<<argv[i]<<endl;
12   }
13 }

运行结果如下:  

2、对argc和argv进行操作

        对输入参数的个数和内容操作简单的可以归纳为对int型变量和二维的字符数组char *argv[]的操作。

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <string>
 4 
 5 using namespace std;
 6 
 7 //函数的使用方法
 8 void printUsage()
 9 {
10   cout<<"printUsage"<<endl;
11 };
12 
13 int main(int argv,char *argc[])
14 {
15   int num;
16   if (argv == 1)//如果没有第二个参数,打印使用方法
17   {
18     printUsage();
19     return -1;
20   }
21   for (int i = 1;i<argv;i++)
22   {
23     //当用户输入 --help或者?的时候,打印使用方法
24     if ((string(argc[i]) == "--help")||(string(argc[i]) == "?"))
25     {
26       printUsage();
27       return -1;
28     }
29     //输入--times和一个数字的时候,把num赋值为输入的数字
30     else if ((string(argc[i])=="--times"))
31     {
32       num = atoi(argc[++i]);
33     }
34     //如果输入的是其他字符,无效输入
35     else
36       num = 0;
37   }
38   //打印test output,次数有输入的数字确定
39   for( int i = 0;i<num;i++)
40   {
41     cout<<"test output "<<i+1<<" time"<<endl;
42   }
43 }

测试结果:

NOTE:

     程序主要是测试将参数转换为字符串和int型数字,并对字符串和数字进行处理的功能实现。

     可以看出将字符数组的内容转换为字符串是:

string(argc[i]) == "--help"

    将字符数组的内容转化为 int 型 是:

num = atoi(argc[++i]);

posted on 2015-04-23 22:54  Curnane  阅读(365)  评论(0编辑  收藏  举报

导航