VS2013中带命令行参数的调试方法---C++
今天先记录一下(也是传说中大神喜欢装逼的comment line)c++中向主函数int main(int argc,char** argv )传递4中方法,欢迎添加新方法, 然后可以参考别人写的很好的一篇博文: https://blog.csdn.net/qq76536257/article/details/50590272
1. 方法:以opencv 中的 cv::imread(argv[1], -1)为例。
a.进入属性properties--> 布局属性Configuration properties--->调试debugging--->命令行参数 command Arguments---> 输入自己的参数,这里以图片RGB.bmp为例, 然后就会输出结果。
b.进入到对应的编译的exe文件----->创建批处理文件(记事本改格式为(.bat) 就行)-----> 编辑batch文件: (可执行文件).exe RGB.bmp (即格式是: 对应exe+空格+参数+空格+参数+) -----> 退出, 点击运行完成。
c. 进入dos命令下---->进入对应的exe文件目录(需要你有简单的dos命令基础,不行百度) -----> 编辑:对应exe+空格+RGB.bmp
d. 再简单点直接在c++中命令 argv[1] = "RGB.bmp", 哈哈哈!
2.参考别人的博文,很不错详细:
VS2013带命令行参数的调试方法
在C++函数参数传递中,我们知道,main函数是演示C++程序如何向函数传递数组的好例子。一般来说,我们定义的的大多main函数都只有空的形参列表:
int main () { … }1
然而,有时我们确实需要给main函数传递实参,一种常见的情况是用户通过设置一组选项来确定函数所要执行的操作。例如:假定main函数位于可执行文件prog (通常是指编译后产生的**.exe文件)之内,我们可以向程序传递下面的选项:
prog -d -o ofile data01
这些命令行选项通过两个(可选的)形参传递给main函数:
int main ( int argc, char *argv[ ] ) { … }1
第二个形参argv是一个数组,它的元素是指向C风格字符串的指针;第一个形参argc表示数组中字符串的数量。因为第二个形参是数组,所以main函数也可以定义成:
int main ( int argc, char **argv) { … }1
其中argv指向char * 。
当实参传递给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串,接下来的元素依次传递命令行提供的实参。最后一个指针之后的元素值保证为0。
以上面提供的命令行为例,argc应该等于5,argv应该包含如下的C风格字符串:
argv [0] = “prog” ; argv [1] = “-d” ; argv [2] = “-o” ; argv [3] = “ofile” ; argv [4] = “data0” ;12345
注意: 当使用argv中的实参时,一定要注意可选的实参从argv[1]开始;argv[0]保存程序的名字,而非用户输入。
那么,当程序编译完成之后,怎样调试运行指定的参数呢?
如下,在VS2013中有两种方法:
(1) 无需调试的情况:直接在系统中用DOS命令进入到*.exe所在的目录下 然后输入:
**.exe pra1 pra21
注意这种情况下,如果参数中有一个是待读取文件的filename,例如:123.txt,那么要默认把这个文件放在**.exe所在在目录下。这与第二种情况不同。
(2) 需要调试的情况:
点击菜单栏的 项目>>属性:
出现属性对话框之后,选择 配置属性>>调试>>命令参数:
在里面设置main的参数即可,多个参数用空格隔开。
在第二种情况下,如果参数中有一个是待读取文件的filename,例如:123.txt,那么要默认把这个文件放在项目所在的文件夹中。可以通过右键项目名称>>在文件资源管理中打开文件夹,放在打开后的目录下即可。具体如下图:
然后,运行即可。 --------------------- 作者:Porsche_911T 来源:CSDN 原文:https://blog.csdn.net/qq76536257/article/details/50590272 版权声明:本文为博主原创文章,转载请附上博文链接!
VS2013中带命令行参数的调试方法---C++的更多相关文章
- vscode带命令行参数进行调试
vscode带命令行参数进行调试 2.输入代码 { // 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述. // 欲了解更多信息,请访问: https://go.mic ...
- VS2013 带命令行参数的调试问题 解决方案
int main(int argc,char* argv[]) argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数 比如: ...
- 如何编写一个带命令行参数的Python文件
看到别人执行一个带命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持带命 ...
- VS2010中使用命令行参数 分类: c/c++ 2014-07-11 22:24 634人阅读 评论(0) 收藏
在Linux下编程习惯了使用命令行参数,故使用VS2010时也尝试了一下. 新建项目,c++编写程序如下: #include<iostream> #include<fstream&g ...
- [C#学习笔记3]关于Main(string[ ] args)中args命令行参数
Main(string[] args)方法是C#程序的入口,程序从这里开始执行,在这里结束.C#代码逻辑要包含在一个类型(Type)中,游离的.全局的变量或函数是不存在的,这里的类型包括类(class ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- linux 中解析命令行参数(getopt_long用法)
linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...
- 3-2带命令行参数的Java
命令行参数: 主方法Main 小括号里面的内容就是命令参数: String[] args class ArgsDemo{ public static void main(String[] args){ ...
- python中处理命令行参数的模块optpars
optpars是python中用来处理命令行参数的模块,可以自动生成程序的帮助信息,功能强大,易于使用,可以方便的生成标准的,符合Unix/Posix 规范的命令行说明.使用 add_option() ...
随机推荐
- 【学习中】Unity插件之NGUI 完整视频教程
课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控 ...
- LoadRunner回放脚本遇到的问题(遇到就补上)
问题一:Error-26612:HTTP Status-code=500(Internal Server Error) 解决过程:google找到了关于这个错误有多种解决的方法,但是都不是我要的,最重 ...
- P3311 [SDOI2014]数数 AC自动机+数位DP
题意 给定一个正整数N和n个模式串,问不大于N的数字中有多少个不包含任意模式串,输出对\(1e^9+7\)取模后的答案. 解题思路 把所有模式串都加入AC自动机,然后跑数位DP就好了.需要注意的是,这 ...
- Pinpoint 一款强大的APM工具
背景 程序的监控一直是程序员最头痛的事情之一,现网程序有问题怎么办?看进程看端口 top/free/df 三件套?网络抓包?看日志?所以为了满足这些初级需求很多公司都做了主机监控,进程端口监听等功能, ...
- 吐槽express 中间件multer
工作不是那么忙,想学一下Express+multer弄一个最简单的文件上传,然后开始npm install,然后开始对着multer官方文档一顿操作. 前台页面最简单的: <!DOCTYPE h ...
- centos7图形化安装oracle11g
#设置主机名 hostnamectl set-hostname oracle #yum安装 yum -y install unzip vim* bash-completion bash-complet ...
- Mybatis-解决属性名和字段名不一致的问题
解决属性名和字段名不一致的问题 目录 解决属性名和字段名不一致的问题 1. 问题 2. ResultMap 1. 问题 在数据库中,密码字段为pwd,而在实体类中为password package c ...
- Flash 0day(CVE-2018-4878)复现过程
一.前言介绍 2018年2月1号,Adobe官方发布安全通报(APSA18-01),声明Adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878). 从Ad ...
- JVM垃圾收集机制
JVM垃圾回收机制是java程序员必须要了解的知识,对于程序调优具有很大的帮助(同时也是大厂面试必问题). 要了解垃圾回收机制,主要从三个方面: (1)垃圾回收面向的对象是谁? (2)垃圾回收算法有哪 ...
- RFID了解
转载自为什么大家都抛弃传统标签选择RFID电子标签? rfid电子标签是一种非接触式的自动识别技术,它通过射频信号来识别目标对象并获取相关数据,识别工作无需人工干预,作为条形码的无线版本,RFID技术 ...