c++main函数的命令行参数问题

问题描述

c++main函数的命令行参数问题
int main(int argcchar *argv[]);
函数从命令行读取参数
1.是不是只有生成了test.exe文件之后才能从命令行读取参数(因为我看见 好多都是在命令行输入test.exe后面再加一些参数这样子的),也就是说 我还在调试阶段就不能从命令行输入参数?
2.没有从命令行输入参数的时候,argc=1,*argv[0]是程序的路径的名称,如果main后面的括号里面没有东西,是不是意味着我不能在命令行里运行他,因为找不到路径?

解决方案

1.如果你是在DOS窗口下运行程序下的话,需要你生成.exe程序后,执行,形如:*.exe arg1 arg2,这是一种从主函数中读取命令行参数的方法。其实你也可以直接在项目属性中设置,设置主函数要接收的参数,以vs2013为例,工程-》属性-》配置属性-》调试,在右侧有一个命令参数,你可以将主函数要接收的参数,写进行,中间以空格分开。注意,这里的参数没有*.exe。直接写arg1arg2。
2.如果你的main函数没有写成int main(int argcchar *argv[]);这种形式,那么主函数就不能接收函数参数。
总之,如果要接收函数参数,则必须要这么写int main(int argcchar *argv[]);

解决方案二:
很多时候我们的程序需要从外部获取一些运行时的参数,比如我的主程序 去调用另外一个exe或者其他的程序,在调用外部可执行程序的时候,一般我们都需要传入一些参数。 那么在我们的外部程序 如何来获取传入的参数呢?
?? 下面我们来看一下:?
?? 在WinMain函数的主函数中,已经传入了一个参数 LPTSTR??? ......
答案就在这里:关于Main函数的命令行参数

解决方案三:
调试的时候,你可以在编译器的debug选项中填上你希望的调试参数,这样调试的时候,就会收到这个参数给你来调试

时间: 2024-11-03 04:20:30

c++main函数的命令行参数问题的相关文章

命令行参数(带参main)

int main(int argc, char * argv[]){ --} 参数argc就代表启动程序时,命令行参数的个数.C/C++语言规定,可执行程序程序本身的文件名,也算一个命令行参数,因此,argc的值至少是1.参数argv是一个数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数.argv[0]指向的字符串就是第一个命令行参数,即可执行程序的文件名argv[1]指向第二个命令行参数argv[2]指向第三个命令行参数--.#inclu

vc-VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数?

问题描述 VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数? 现要写一个程序甲,甲向乙程序发送命令行参数,乙解析该参数并作相应操作, 现在问题是具体甲怎样向乙发送命令行参数?需要调用哪些API函数? (抱歉还是菜鸟,没有金币悬赏~谢谢各位大神了!) 解决方案 如果a是启动进程B的话,那么CreateProcess就可以启动B,同时带上命令行参数,B解析参数进行动作. 如果B已经启动了,这个其实就是进程通信,最简单的方式是发送消息,PostMessage.B根据消息进行对应的操作

【原创】memcached 中的命令行参数解析

     本文主要是以 memcached 源码为例,讲解如何在 linux 下解析命令行参数.  安装 memcached 后,查看其可用选项:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@Be

getopt() 对命令行参数进行分析

getopt() 对命令行参数进行分析 int getopt( int argc, char *const argv[], const char *optstring );         给定了命令参数的数量 (argc).指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量.使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量.如果不再有识别到的选项,将返回 -1,此任务就完成了.可以重复调用

在C++ Builder中取得命令行参数

用过C语言编程的人都知道,在DOS下的编程可以通过main函数的参数取得命令行参数的个数以及每个参数的字符串,例如 int main(int argv ,char *argv[]) { - } 则命令行参数是argc个,这些参数分别存储在argv[0]-argv[argc-1]中,其中argv[0]是可执行文件的名字(含路径),那么Windows程序是怎么取得命令行参数的呢?用C语言写过windows程序的人都知道,在windows程序的主函数WinMain()中,有一个参数lpszCmd,这个

使用ANTLR进行命令行参数解析

关于命令行参数的解析没有特定的规则,目前比较流行的有unix风格和微软风格.其实除了unix风格 的比较一致外,微软自己提供的命令行参数解析就有很多种风格.在.net平台下的main函数中,仅仅把参 数分解为以空格分割的数组,这对需要加开关,并且有的开关有自己的参数的情况是不够的,而且为了解 析这些参数需要学习部分词法分析的知识,这对用处不是很大的命令行参数显得有些"鸡肋",当然用 Antlr来处理命令行参数更显得有些鸡肋,并且是大才小用,因为Antlr的语法规则比较复杂,学习起来有

C语言程序设计之命令行参数

  在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果. C语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数,其中,int argc表示命令行参数的个数(包括可执行程序名本身),char *argv[]表示每个参数的具体内容,argv[0]为命令行中可执行程序名本身,argv[1]为命令行中第二个参数的内容,依次类推.如下例输出命

Bash Getopts - 让你的脚本支持命令行参数

Bash Getopts - 让你的脚本支持命令行参数 以前我总想知道如何为我的Bash脚本创建命令行参数.经过搜索,我发现了2个函数可以处理这个问题,getopt 函数和 getopts 函数.我无意争论哪一个函数更好的.getopts 是一个shell内建命令,而且似乎比 getopt 更容易实现这个功能,所以在这篇文章里我准备讲讲getopts. bash getopts 开始的时候,我只试着处理传递给脚本的命令行参数.最后,我添加了另外一些有用的功能函数,使得这个脚本可以成为其他任何交互

如何分析命令行参数

如何分析命令行参数     GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符.     比如有一个命令: $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt     在GNU/Linux系统,对这种情况的一种合理解释是:     a是短选项,带一个参数vv:     add是长选项,无参数:     b是短选项,无参数:     file是长选项,带一个参数a.txt: