命令行参数

Posted 落花人独立微雨燕双飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行参数相关的知识,希望对你有一定的参考价值。

以命令行方式运行程序:

  举例:

    第一步:按住windows键和R键,在弹出的窗口输入cmd,打开命令行窗口(控制台)。

    第二步:在相应的磁盘中敲notepad helloworld.txt。即可用记事本打开helloworld.txt文件。

    结果如下:

      技术分享图片

命令行参数:

用户在CMD窗口用输入可执行文件名的方式启动程序时,跟在可执行文件名后面的那些字符串,称为“命令行参数”。

命令行参数可以有多个,以空格分隔。(如果命令行参数里面有空格就用双引号括起来)

比如,在CMD窗口敲: copy file1.txt file2.txt 就是启动了copy这个程序,它能将file1拷贝到file2里面去.

  其中“copy”,“file1.txt”,“file2.txt”就是命令行参数。

假设你编写了copy程序,那你的copy程序就应该能获得命令行参数,怎么来获得呢?

我们要求,想获得命令行参数的C程序或C++程序,它的main函数形式需要改为:

  int main(int argc, char *argv[])

  其中: argc:代表启动程序时,命令行参数个数。C/C++语言规定,可执行程序程序本身的文件名也算一个命令行参数。因此,argc的值至少是1.

      argv:是一个指针数组,里面每一个元素都是一个char* 类型的指针,该指针指向一个字符串,即指向命令行参数。

         如argv[0]指向第一个命令行参数,也就是可执行文件名。argv[1]指向第二个命令行参数…… 

如编写一下程序:

 

1 #include<iostream>
2 using namespace std;
3 int main(int argc, char const *argv[])
4 {
5     for(int i = 0; i < argc; i++) //遍历argv数组,数组里有argc个元素
6         cout << argv[i] << endl; //打印数组中每个字符串指向的字符串
7     return 0;
8 }

 

 

将上面代码编译成zero.exe,然后在控制台窗口敲:

  zero para1 para2 z.txt.0 "hello world"

其结果如下:

技术分享图片

 ....................................................................................................................................................

另外介绍一个可以看电脑电池使用情况的命令行参数(不过这个要进入windows powershell才能用):

powercfg /batteryreport /output "E:atteryreport.html"  注意空格

 


以上是关于命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

提效小技巧——记录那些不常用的代码片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023

传递命令行参数示例代码 (C 和 Python)

laravel特殊功能代码片段集合

Python 命令行参数以及代码编译发布为可执行文件

Python 命令行参数以及代码编译发布为可执行文件