Qt传入参数argc argv[]
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
總結
以上是生活随笔為你收集整理的Qt传入参数argc argv[]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue如何获取年月日_Bootstrap
- 下一篇: cpu队列长度太长解决方法_CPU中的调