将参数从bash传递到C
如何将参数从bash命令传递到c语言中的程序 例如,如果我有一个如下所示的命令:将参数从bash传递到C,c,bash,unix,arguments,C,Bash,Unix,Arguments,如何将参数从bash命令传递到c语言中的程序 例如,如果我有一个如下所示的命令: ./c_program argument 如何在C程序本身中访问该参数? 我可以像在bash中一样使用$1之类的变量吗?试试下面的代码,看看它在不同数量的参数下是如何工作的: #include <stdio.h> int main(int argc, const char *argv[]) { for (int i=0; i<argc; i++) { printf("%s
./c_program argument
如何在C程序本身中访问该参数?
我可以像在bash中一样使用$1之类的变量吗?试试下面的代码,看看它在不同数量的参数下是如何工作的:
#include <stdio.h>
int main(int argc, const char *argv[])
{
for (int i=0; i<argc; i++) {
printf("%s\n",argv[i]);
}
return 0;
}
#包括
int main(int argc,const char*argv[]
{
对于(int i=0;i,正如Stephan Lechner在他的代码中所述,您使用变量argc
和argv
。首先,您必须在代码中包含int main(int argc,char**argv){
,才能获得这些变量。char**argv
可以不同,即char*argv[]
工作正常,const char*argv[]
char**argv
本质上是一个字符串数组
,但这种字符串更好地称为char数组
(character array的缩写)。您可能希望像这样使用它:
int option1 = 0;
for(int i = 1; i < argc; i++) {
if(strcmp(argv[i], "--the-input-you-were-expecting-here") == 0)
option1 = 1;
}
int选项1=0;
对于(int i=1;i
注意:argv包括命令的./c_程序部分作为第一个索引,因此,argv[0]
将等于“/c_程序”
,如果您的命令是”/c_程序——您在这里期望的输入“
请参见main(),argv,argc
-应该出现在任何C
书的前几页中-也可以通过使用您的问题标题进行互联网搜索来确定