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]代表程序名。
#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操作的更多相关文章
- VC 在调用main函数之前的操作
title: VC 在调用main函数之前的操作 tags: [VC++, 反汇编, C++实现原理] date: 2018-09-16 10:36:23 categories: VC++反汇编分析 ...
- 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?
多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...
- 命令行参数(argc, argv)
每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过两个入参提供给main()函数. ...
- main函数的参数argc和argv
版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/20413773 该篇 ...
- main函数的参数(int argc,char *argv[])
一般的main函数都是不带参数的,因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这两个参 ...
- [C/C++基础知识] main函数的参数argc和argv
该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助.一.main()函数参数通常我们在写主函数时都是void ...
- 【转】 深入main函数中的参数argc,argv的使用详解
C/C++语言中的main函数,经常带有参数argc,argv,如下: 复制代码 代码如下: int main(int argc, char** argv) 这两个参数的作用是什么呢?argc 是指命 ...
- main函数中argc和argv含义
在main函数中经常可以看到int main(int argc, char ** argv)的函数头,这里的形参int argc, char ** argv究竟是啥含义呢? &1 int ar ...
- Main函数参数argc,argv说明
C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) ...
随机推荐
- Python+Appium来写app自动化脚本
1...........................我有空再补
- NYIST 1108 最低的惩罚
最低的惩罚 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 那么现在问题就来了... 给你N(1=<N<=15)个任务,每个任务有一个截止完成时间t(1= ...
- HDU——T 1068 Girls and Boys
http://acm.hdu.edu.cn/showproblem.php?pid=1068 Time Limit: 20000/10000 MS (Java/Others) Memory Li ...
- STM32中assert_param的使用
在STM32的固件库和提供的例程中.到处都能够见到assert_param()的使用. 假设打开不论什么一个例程中的stm32f10x_conf.h文件,就能够看到实际上assert_param是一个 ...
- Homebrew命令具体解释
Homebrew命令具体解释 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一.安装Homebrew Shell环境下 ...
- 【Android UI】案例02 圆角边框、圆角背景的实现(shape)
本文主要分享圆角边框与圆角背景的实现方式.该方式的实现,须要了解shape的使用.该部分的具体介绍,请阅读博客http://blog.csdn.net/mahoking/article/details ...
- Java 深拷贝和浅拷贝 利用序列化实现深拷贝
Java 深拷贝和浅拷贝 转自:http://www.cnblogs.com/mengdd/archive/2013/02/20/2917971.html 深拷贝(deep clone)与浅拷贝(sh ...
- C&C控制服务的设计和侦测方法综述——DDoS攻击,上传从宿主机偷窃的到的信息,定时给感染机文件加密勒索等。
这篇文章总结了一些我在安全工作里见到过的千奇百怪的C&C控制服务器的设计方法以及对应的侦测方法,在每个C&C控制服务先介绍黑帽部分即针对不同目的的C&C服务器设计方法,再介绍白 ...
- Redis允许远程连接
默认安装启动redis后,只能本地连接,无法远程连接上,原因是redis安全策略默认本机访问,所以远程访问的话需要将 配置文件redis.cof 中的 bind 127.0.0.1 前面的#注释掉, ...
- [Swift] 随机数 | Random numbers
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...