我明白argv和argc做了什麼以及它們如何使用,但我需要重新創建它們。在C中,你將如何編寫一個函數來模仿它們。如何編寫「argv」和「argc」
回答
argc
和argv
用於從命令行啓動程序或想要將某些變量傳遞給程序。
argc
包含參數的個數,argv
是指向字符串參數的指針數組。
這些參數主要是
main(int argc, char** argv)
語法char** argv
聲明argv
是一個指針的指針到一個字符,即,一個指向字符陣列(字符串) - 換句話說,一串字符串。您也可以將其寫爲char* argv[]
。
運行程序時,數組argv
按順序包含命令行中輸入命令時的所有信息(字符串由空格標示),包括命令本身。整數argc
給出了字符串的總數,因此等於參數個數加1。例如,如果您鍵入
a.out -i 2 -g -x 3 4
的方案將得到
argc = 7
argv[0] = "a.out"
argv[1] = "-i"
argv[2] = "2"
argv[3] = "-g"
argv[4] = "-x"
argv[5] = "3"
argv[6] = "4"
好的,假設在我的程序中我需要類似的東西。 第一條命令很明顯是什麼啓動程序,以下參數是該命令的變量。 – confusedProgrammer
@ user2808307;更新了我的答案。 – haccks
在C和C++,主要功能的函數原型如下:
int main(int argc, char *argv[]);
你不能重建他們,但你可以改變他們的名字。
在你的主,你可以輸入int main(int numberOfArguments, char *arrayOfArguments[])
和使用numberOfArguments
爲argc
和arrayOfArguments
爲argv
。
您只需創建一個數組來存儲要傳入的參數argv
,並相應地設置argc
,類似於;
int argc = 3;
char* argv[argc + 1];
argv[0] = "binary name";
argv[1] = "first parameter";
argv[2] = "second parameter";
argv[3] = NULL;
int result = main(argc, argv);
我不知道我會有多少argc,它會被用戶讀入,並且它們不應該有空格。 所以我知道我需要一個字符串數組。 我尋找類似 INT主(){ 字符*命令[100] INT CNUM = 30; getCommand(command,cNum); ! 而(的strcmp(命令[0], 「退出」))= 0){// 做任何 } 返回0; } 無效getCommand(命令,CNUM){// 做一些 } – confusedProgrammer
@ user2808307我會建議你看看'stdarg.h' – Arpit
@Arpit - 是在C,沒有用C++。 –
- 1. 構建argv和argc
- 2. iOS如何使用argc和argv?
- 3. argc argv問題
- 4. OpenCV的argc和argv混亂
- 5. 使用argv和argc打印
- 6. 與argc和argv處理
- 7. argc和argv未運行
- 8. argc和argv沒有運行
- 9. argc和argv的問題
- 10. argc/argv問題c
- 11. 的argc argv的參數 - (遊戲編程)
- 12. C++ gtkmm 3.0如何訪問argc,argv
- 13. 關於argc和argv的澄清
- 14. 覆蓋全球*的argv []和INT ARGC C++
- 15. 從庫中查找argc和argv
- 16. 使用argc和argv分析命令行
- 17. 在C++中解析argc和argv
- 18. 通過的argv和argc個線程
- 19. 在Eclipse中使用argc和argv?
- 20. ARGV和ARGC是未定義或爲空
- 21. argc和argv []在C語言中
- 22. getopt_long()函數與自定義argc和argv
- 23. 調試斷言失敗 - argc和argv
- 24. initialize_main(&argc,&argv)做什麼?
- 25. 創建的argc argv的
- 26. CodeBlocks中缺少「argc,argv」
- 27. 如何分配在ARGC字符串和argv
- 28. 如何將Rust`Args`轉換爲argc和argv C等價物?
- 29. 如何用argc和argv調用main鏈接列表?
- 30. 我如何從C++中的argc和argv中受益?
你有沒有感覺到'argv'和'argc'只是魔術變量?像perl的'ARGV'? – P0W
'argv'是一個字符串數組(字符指針數組),'argc'是該數組的長度。因此重新創建它們只是製作一系列字符串的問題。你想用'argc'和'argv'做什麼? – Kninnug
閱讀[如何使用argv和argc](http://stackoverflow.com/questions/19108368/segmentation-fault-with-strcmp/19108878#19108878) –