2017-04-03 67 views
-5

我怎样才能通过从bash命令参数在C程序?传递参数,从庆典到C

举例来说,如果我有一个看起来像这样的命令:

./c_program argument 

我怎样才能获得在C程序本身这样的说法? 我可以只使用变量,如$ 1,就像你可以在bash?

+3

见'的main(),argv的,argc' - 用您的问题标题也,也许可以从互联网搜索确定 - 应该在任何'C'本书的第几页 – KevinDTimm

回答

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; 
} 
0

由于斯蒂芬·莱希纳在他的代码说明,您可以使用变量argcargv。首先,你必须有int main(int argc, char **argv) {在你的代码来获得这些变量。 char **argv可以是不同的,虽然,即char *argv[]作品也是如此const char *argv[]

char **argv是基本上strings阵列,但这种串的是更好地称为一个char array(简称“字符数组”)。你要有点像这样使用:

int option1 = 0; 
for(int i = 1; i < argc; i++) { 
    if(strcmp(argv[i], "--the-input-you-were-expecting-here") == 0) 
    option1 = 1; 
} 

注:argv的包括你的命令作为第一指标的./c_program的一部分,在这个argv[0]的结果将等于"./c_program"如果您的命令是"./c_program --the-input-you-were-expecting-here"