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[]) ...
随机推荐
- hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树
首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"NO",之后清空,加白边,看最多能加多少条,清空,加黑边,看能加多少条,即可得白边的最大值与最小值,之后判断Fibo ...
- 【linux驱动分析】misc设备驱动
misc设备驱动.又称混杂设备驱动. misc设备驱动共享一个设备驱动号MISC_MAJOR.它在include\linux\major.h中定义: #define MISC_MAJO ...
- emmet教程
https://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html https://www.zfanw.com/blog/zencoding- ...
- 提高FPGA速度的quartus编译选项
Turning on some optimizations in Quartus II may help increase it. Here are some you may want to try: ...
- Cms WebSite 编译非常慢
第一次编译非常慢 如果遇到错误,中途中断的话. 下一次编译的时候,上一次已经编译过的文件,会非常快的略过.很快就会到上一次遇到错误的地方,继续往下进行编译.
- 求解n位格雷码
/************************************************************************* > File Name: Gray.cpp ...
- spark 从RDD createDataFrame 的坑
Scala: import org.apache.spark.ml.linalg.Vectors val data = Seq( (7, Vectors.dense(0.0, 0.0, 18.0, 1 ...
- hpuoj--校赛--送给新生的礼物(水题)
问题 A: 感恩节KK专场--送给新生的礼物 时间限制: 1 Sec 内存限制: 128 MB 提交: 631 解决: 187 [提交][状态][讨论版] 题目描述 学长KK要送给学弟学妹们礼物, ...
- Dictionary subtraction
Finding the words from the book that are not in the word list from words.txt is a problem you might ...
- TurtleWorld Exercises
1. Write a function called square that takes a parameter named t, which is a turtle. It should use t ...