我明白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) –