700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C++ main函数命令行参数使用

C++ main函数命令行参数使用

时间:2024-09-03 00:15:21

相关推荐

C++ main函数命令行参数使用

1. C/C++语言中的main函数,经常带有参数argc,argv,如下:

int main(int argc, char** argv)

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

C语言还规定argc(第一个形参)必须是整型变量,argv(第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:

main(intargc,char*argv[])

2. 由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢?实际上,main函数的参数值是从操作系统命令行上获得的。

如何在操作系统命令行获取参数呢?

(1)在VS中设置时右键项目->属性->调试->命令参数,在命令参数中添加所需参数,字符串之间用空格分开即可。如果是.txt文件,要放在当前目录下(.cpp所在目录),不然找不到。

(2)或者:假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为:

hello.exedata.txt//.txt也在.exe所在目录下

但是应该特别注意的是,main的两个形参和命令行中的参数在位置上不是 一 一 对应的。

因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。

3. 举例:

在调用一个可执行程序时,某些情况下需要向程序传递参数。如我们可以在控制台中键入notepad.exe,

回车后将执行记事本程序。如果我们希望在打开notepad时同时打开一个文本文件,可以在notepad.exe

后面跟上文件的路径和名字,如notepad.exe example.txt(文件在当前路径)。

那么程序中如何能得到这些输入参数呢?这个工作是编译器帮我们完成的,编译器将输入参数的信息

放入main函数的参数列表中。

main函数的参数列表保存了输入参数的信息,第一个参数argc记录了输入参数的个数,

第二个参数是字符串数组的,字符串数组的每个单元是char*类型的,指向一个c风格字符串。

以notepad.exe example.txt data.txt train.txt 为例

argc是4,就是说argv数组中有四个有效单元

第一单元指向的字符串是"notepad.exe"

第二单元指向的字符串是"example.txt"

第三单元指向的字符串是"data.txt"

第四单元指向的字符串是"train.txt"

argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。

这个赋值过程是编译器完成的,我们只需要读出数据就可以了。

#include using namespace std;int main(int argc, char* argv[]){int i;for (i = 0; i

在命令行参数中输入data.txt

结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。