使用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]代表程序名。

 #include<iostream>
#include<stdlib.h> using namespace std; int main(int argc,char *argv[])
{
cout<<"the argc is "<<argc<<endl;
for (int i = ;i<argc;i++)
{
cout<<"argv["<<i<<"] is "<<argv[i]<<endl;
}
}

运行结果如下:

2、对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 == )//如果没有第二个参数,打印使用方法
{
printUsage();
return -;
}
for (int i = ;i<argv;i++)
{
//当用户输入 --help或者?的时候,打印使用方法
if ((string(argc[i]) == "--help")||(string(argc[i]) == "?"))
{
printUsage();
return -;
}
//输入--times和一个数字的时候,把num赋值为输入的数字
else if ((string(argc[i])=="--times"))
{
num = atoi(argc[++i]);
}
//如果输入的是其他字符,无效输入
else
num = ;
}
//打印test output,次数有输入的数字确定
for( int i = ;i<num;i++)
{
cout<<"test output "<<i+<<" time"<<endl;
}
}

测试结果:

NOTE:

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

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

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

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

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

main函数argc,argv操作的更多相关文章

  1. VC 在调用main函数之前的操作

    title: VC 在调用main函数之前的操作 tags: [VC++, 反汇编, C++实现原理] date: 2018-09-16 10:36:23 categories: VC++反汇编分析 ...

  2. 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?

    多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...

  3. 命令行参数(argc, argv)

    每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过两个入参提供给main()函数. ...

  4. main函数的参数argc和argv

    版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/20413773 该篇 ...

  5. main函数的参数(int argc,char *argv[])

    一般的main函数都是不带参数的,因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这两个参 ...

  6. [C/C++基础知识] main函数的参数argc和argv

    该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助.一.main()函数参数通常我们在写主函数时都是void ...

  7. 【转】 深入main函数中的参数argc,argv的使用详解

    C/C++语言中的main函数,经常带有参数argc,argv,如下: 复制代码 代码如下: int main(int argc, char** argv) 这两个参数的作用是什么呢?argc 是指命 ...

  8. main函数中argc和argv含义

    在main函数中经常可以看到int main(int argc, char ** argv)的函数头,这里的形参int argc, char ** argv究竟是啥含义呢? &1 int ar ...

  9. Main函数参数argc,argv说明

    C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) ...

随机推荐

  1. hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树

    首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"NO",之后清空,加白边,看最多能加多少条,清空,加黑边,看能加多少条,即可得白边的最大值与最小值,之后判断Fibo ...

  2. 【linux驱动分析】misc设备驱动

    misc设备驱动.又称混杂设备驱动. misc设备驱动共享一个设备驱动号MISC_MAJOR.它在include\linux\major.h中定义:         #define MISC_MAJO ...

  3. emmet教程

    https://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html https://www.zfanw.com/blog/zencoding- ...

  4. 提高FPGA速度的quartus编译选项

    Turning on some optimizations in Quartus II may help increase it. Here are some you may want to try: ...

  5. Cms WebSite 编译非常慢

    第一次编译非常慢 如果遇到错误,中途中断的话. 下一次编译的时候,上一次已经编译过的文件,会非常快的略过.很快就会到上一次遇到错误的地方,继续往下进行编译.

  6. 求解n位格雷码

    /************************************************************************* > File Name: Gray.cpp ...

  7. spark 从RDD createDataFrame 的坑

    Scala: import org.apache.spark.ml.linalg.Vectors val data = Seq( (7, Vectors.dense(0.0, 0.0, 18.0, 1 ...

  8. hpuoj--校赛--送给新生的礼物(水题)

    问题 A: 感恩节KK专场--送给新生的礼物 时间限制: 1 Sec  内存限制: 128 MB 提交: 631  解决: 187 [提交][状态][讨论版] 题目描述 学长KK要送给学弟学妹们礼物, ...

  9. Dictionary subtraction

    Finding the words from the book that are not in the word list from words.txt is a problem you might ...

  10. TurtleWorld Exercises

    1. Write a function called square that takes a parameter named t, which is a turtle. It should use t ...