QtCreator调试传入运行参数
QtCreator是非常不错的IDE,最近在做的Qt命令行应用,因为调试的环境不同等问题,需要在调试的时候为 main() 传入参数。度娘了半天,没找到方法,只能自力更生。后来在“项目-构建和运行-运行”下找到了。
如果想在调试时为 main() 传入参数,只要将参数输入到上图红线中的“参数”栏即可。
这里对 main() 函数及其参数简单介绍一下。
C语言的 main() 可以有以下几种写法:
1. int mian(void)
2. int main(int argc)
3. int main(int argc, char *argv[])
4. int main(int argc, char *argv[], char *env[])
另外也有其他一些不太符合标准、不常见的写法。关于main() 的写法问题可以参见《你所未必了解的main()函数的事情》一文。
上面 4 种写法中,1 和 3 较为常见,由于 argc 和 argv 通常搭配使用,所以方法 2 不常使用,方法 4 并不是所有编译器都支持,所以也很少使用。
根据 C99 标准,main() 函数必须有 int 类型的返回值,不写返回值或者返回值为 void 类型都是不建议的,虽然有些编译器还支持这类写法。
同样,一定要为 main() 指明参数类型 ,如果没有参数要在括号内填写 void ,不可留空。
参数 argc 代表了输入参数个数,操作系统为 mian() 传入的 argc 至少为1,其值为该应用程序的名字;
参数 argv 表示传入参数的字符串,是一个字符串数组;
参数 env 内容是操作系统传入的环境变量字符串,同样是一个字符串数组。
以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数:
/*program name EXAMPLE.EXE*/
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[], char *env[])
{
int i;
printf("These are the %d command- line arguments passed to
main:/n/n", argc);
for(i=0; i<=argc; i++)
printf("argv[%d]:%s/n", i, argv);
printf("/nThe environment string(s)on this system are:/n/n");
for(i=0; env!=NULL; i++)
printf(" env[%d]:%s/n", i, env);
}
如果在DOS 提示符下, 按以下方式运行EXAMPLE.EXE:
C:/example first_argument "argument with blanks" 3 4 "last but
one" stop!
注意: 可以用双引号括起内含空格的参数, 如本例中的: " argument
with blanks"和"Last but one")。
结果是这样的:
The value of argc is 7
These are the 7 command-linearguments passed to main:
argv[0]:C:/TURBO/EXAMPLE.EXE
argv[1]:first_argument
argv[2]:argument with blanks
argv[3]:3
argv[4]:4
argv[5]:last but one
argv[6]:stop!
argv[7]:(NULL)
The environment string(s) on this system are:
env[0]: COMSPEC=C:/COMMAND.COM
env[1]: PROMPT=$P$G /*视具体设置而定*/
env[2]: PATH=C:/DOS;C:/TC /*视具体设置而定*/
本文示例来自于:http://www.programfan.com/blog/article.asp?id=39240
http://blog.csdn.net/desert187/article/details/40781225
QtCreator调试传入运行参数的更多相关文章
- IntelliJ IDEA设置JVM运行参数
2015十一月 28 原 IntelliJ IDEA设置JVM运行参数 分类:JavaSE (11566) (1) 打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions ...
- 怎么样调试正在运行的exe?
最近在调虚幻的编辑器的时候遇到了一个问题. 调试模式运行UE4Editor.exe 实际上只是一个带参的命令行. 打开后,它又通过这个参数生成了一份详细配置,重新调用了自己.如图 这就悲剧了,断点都没 ...
- 调试和运行matlab代码(源程序)的技巧和教程
转载请标明出处:专注matlab代码下载的网站http://www.downma.com/ 本文主要给大家分享使用matlab编写代码,完成课程设计.毕业设计或者研究项目时,matlab调试程序的技巧 ...
- QTCreator 调试:unknown debugger type "No engine"
[1]QTCreator调试,应用程序输出:unknown debugger type "No engine" 如图:下断点->调试程序->应用程序输出 说明:调试器无 ...
- Linux vm运行参数 - OOM相关的参数
一.前言 本文是描述Linux virtual memory运行参数的第二篇,主要是讲OOM相关的参数的.为了理解OOM参数,第二章简单的描述什么是OOM.如果这个名词对你毫无压力,你可以直接进入第三 ...
- “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数
[JAVA学习]“-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数 转载 2016年06月13日 19:33:38 2792 年轻代 年老代概念 htt ...
- jvm的运行参数
1.我们为什么要对jvm做优化? 在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求: 运行的应用“卡住了”,日志不输出,程序没有反应 服务器的CPU负 ...
- Java 设置系统参数和运行参数
系统参数 系统级全局变量,该参数在程序中任何位置都可以访问到.优先级最高,覆盖程序中同名配置. 系统参数的标准格式为:-Dargname=argvalue,多个参数之间用空格隔开,如果参数值中间有空格 ...
- paip.提升效率--调试--日志系统日志参数含义---python
paip.提升效率--调试--日志系统日志参数含义---python #同时向控制台和文件输出日志 #日志参数含义 import logging log_format = '%(filename)s ...
随机推荐
- 解决Jenkins上git出现Timeout的问题
Jenkins上现有的git插件并没有配置超时的选项,因此在clone项目时如果网络差会出现“ERROR: Timeout after 10 minutes”,导致无法继续构建. 网上找到一个解决方法 ...
- Android 开机启动通知
效果图: 学习: 1.静态注册实现开机启动 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLET ...
- C++程序面试笔迹六
1.const和static的作用 用最熟悉的语言: 2.阶乘求和 如:1!+2!+3!+4!+……+n!=sum? 3.删除掉字符串中相同的字母只留有一个 如: akkkjjtyy——> ...
- java bootstrap分页
样式如下 datumMap.total总共多少页 datumMap.page第几页 <nav class="pull-right"> <ul class=&quo ...
- html checkbox全选或者全不选
/* 全选或全不选 */ function CheckedAllOrNo() { var arr = $(':checkbox'); for (var i = 1; i < arr.length ...
- Android Support库百分比布局
之前写过一篇屏幕适配的文章Android 屏幕适配最佳实践,里面提到了类似百分比布局的东西,可是该方法缺点非常明显,就会添加非常多没用的数据,导致apk包变大. 而谷歌的support库中,添加了一个 ...
- oracle修改字符集后数据库不能启动
最近在做修改字符集的实验,悲剧的是修改后重启,数据库启动不了. SQL> alter system set nls_language='AMERICAN' scope = spfile; S ...
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受.没办法,只能想想怎么解决,最后找到了下面的方法.闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和on ...
- oracle(天猫处方药留言sql)
" ?> .dtd" > <sqlMap namespace="TmallTcMessage"> <typeAlias alias ...
- <!DOCTYPE html>的问题
<!DOCTYPE> 声明必须位于 HTML5 文档中的第一行,也就是位于 <html> 标签之前.该标签告知浏览器文档所使用的 HTML 规范. doctype 声明不属于 ...