VS2013带命令行参数的调试方法

在C++函数参数传递中,我们知道,main函数是演示C++程序如何向函数传递数组的好例子。一般来说,我们定义的的大多main函数都只有空的形参列表:

int  main ()  { … }

然而,有时我们确实需要给main函数传递实参,一种常见的情况是用户通过设置一组选项来确定函数所要执行的操作。例如:假定main函数位于可执行文件prog (通常是指编译后产生的**.exe文件)之内,我们可以向程序传递下面的选项:

prog  -d  -o  ofile  data0

这些命令行选项通过两个(可选的)形参传递给main函数:

int  main ( int argc, char *argv[ ] )  { … }//第一个形参argc:表示数组中字符串的数量
//第二个形参argv:表示一个数组,它的元素是指向C风格字符串的指针

第二个形参argv是一个数组,它的元素是指向C风格字符串的指针;第一个形参argc表示数组中字符串的数量。因为第二个形参是数组,所以main函数也可以定义成:

int  main ( int argc, char **argv)  { … }

其中argv指向char * 。

二.注意1. argv[0]指向程序的名字或者一个空字符串,无需用户输入2. 接下来的元素依次传递命令行提供的实参,即可选的实参从argv[1]开始3. 最后一个指针之后的元素值保证为0

以上面提供的命令行为例,argc应该等于5,argv应该包含如下的C风格字符串:

argv [0] = “prog” ;
argv [1] = “-d” ;
argv [2] = “-o” ;
argv [3] = “ofile” ;
argv [4] = “data0” ;

那么,当程序编译完成之后,怎样调试运行指定的参数呢?

VS2013中有两种方法:

(1) 无需调试的情况:直接在系统中用DOS命令进入到*.exe所在的目录下 
然后输入:

**.exe pra1 pra2
注意这种情况下,如果参数中有一个是待读取文件的filename,例如:123.txt,那么要默认把这个文件放在**.exe所在在目录下。这与第二种情况不同

(2) 需要调试的情况:

点击菜单栏的 调试>>**属性

调试->命令参数,输入要读取得视频名称,(该视频位置处在该项目的文件下)

当命令参数只有一个时,直接运行调试程序即可,自动传递;
当命令参数不止一个时,运行程序后,需要在弹出的命令窗口中输入:liu tree.avi表示:argv [1] = “liu”
argv [2] = “tree.avi” 

注意:命令行不需输入argc参数

from:https://blog.csdn.net/qq_30214939/article/details/62037708?locationNum=7&fps=1

from:https://blog.csdn.net/qq76536257/article/details/50590272

VS2013 int main(int argc, char** argv)参数传递相关推荐

  1. c语言argc和argv的作用,c语言中int main(int argc, char argv)中argc和argv的作用

    摘要:我们在开发C语言时,经常看到int main(int argc, char *argv[]),但是没有太多的关注于argc和argv这两个参数,其实它们有很多的作用呢. 编写一个计算器 为了简单 ...

  2. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

  3. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  4. 关于int main( int argc, char* argv[] ) 中arg和argv参数理解

    在示例程序中经常可以看到argc和argv这两个参数 ,在调试代码过程中遇到main函数为int main( int argc, char* argv[] ) 这种类型时往往会报错,或者是运行起来了但 ...

  5. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  6. 关于main函数的(int argc,char *argv[])

    main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main( ...

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

    以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解.现在用到了,来学习一下.argc命令行输入参数的数量,argv是字符数组,看代码. [mapan ...

  8. 关于int main(int argc,char *argv[])

    在int main(int argc,char *argv[])中的int argc和char *argv[]都是用来在命令行里传递参数.在Linux环境下用的最多,Windows环境下一般用得较少. ...

  9. 主函数main中变量(int argc,char *argv[ ])的含义

    一直不太理解 int main( int argc, char* argv[] ) 或者 int main( int argc, char** argv ) 经典例子 对于理解argv[ ]函数很管用 ...

最新文章

  1. 【Android 插件化】VAHunt 检测插件化引擎的具体细节
  2. 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码
  3. java ip调天气预报接口_JAVA + WeatherWebService 实现天气预报接口调取
  4. JVM运行时常量池跟静态常量池区别
  5. 算法导论4--求最大和数组
  6. android ps1 变量配置,安卓ps模拟器ePSXe使用图文教程
  7. 如何通过数据驱动业务发展
  8. 关于蓝牙打印机的一些问题
  9. 领域泛化(Domain Generalization)
  10. 一文总结 Google I/O 2023
  11. 华为会议终端TE10 SIP配置范例
  12. 手机滚动字幕软件java_提词器app下载
  13. 马克思主义03709
  14. CTR---DIN原理,及deepctr组网实现DIN
  15. oracle 10231事件,Oracle数据块损坏篇之10231内部事件
  16. java实现北京地铁换乘
  17. ( 蚁群算法总结)何涛
  18. MySQL统计数据库所有表的数据量
  19. 【题解】codeforces765F Souvenirs
  20. NABCD分析——生活日历

热门文章

  1. linux mysql备份大量数据库,linux备份整个mysql数据库
  2. Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
  3. antd 能自适应吗_Antd表格滚动 宽度自适应 不换行的实例
  4. JavaScript简介---JS基础
  5. MySQL两种存储引擎: MyISAM和InnoDB
  6. 《XXX重大技术需求征集系统》的可用性和可修改性战术分析
  7. 使用jedisPool管理jedis,使用jedis操作redis
  8. android学习笔记48——SQLite
  9. 朴素贝叶斯与贝叶斯网络
  10. Cordova自定义插件