main函数argc,argv操作

来源:互联网 发布:java final 成员变量 编辑:程序博客网 时间:2024/05/21 16:56

序言:


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


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


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

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

#include<iostream>#include<stdlib.h>using namespace std;int main(int argc,char *argv[]){cout<<"the argc is "<<argc<<endl;for (int i = 0;i<argc;i++){cout<<"argv["<<i<<"] is "<<argv[i]<<endl;}}
     运行程序的结果如下:


   

二、如何对argc和argv进行操作


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

#include <iostream>#include <stdlib.h>#include <string>using namespace std;//函数的使用方法void printUsage(){cout<<"printUsage"<<endl;};int main(int argv,char *argc[]){int num;if (argv == 1)//如果没有第二个参数,打印使用方法{printUsage();return -1;}for (int i = 1;i<argv;i++){//当用户输入 --help或者?的时候,打印使用方法if ((string(argc[i]) == "--help")||(string(argc[i]) == "?")){printUsage();return -1;}//输入--times和一个数字的时候,把num赋值为输入的数字else if ((string(argc[i])=="--times")){num = atoi(argc[++i]);}//如果输入的是其他字符,无效输入elsenum = 0;}//打印test output,次数有输入的数字确定for( int i = 0;i<num;i++){cout<<"test output "<<i+1<<" time"<<endl;}}
     函数结果测试:


      程序说明:

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

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

string(argc[i]) == "--help"
    将字符数组的内容转化为 int 型 是:

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

   当然还有其他的转换函数等用到的时候在总结吧,暂时还只用到这些。

0 0
原创粉丝点击