Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数从bash传递到C_C_Bash_Unix_Arguments - Fatal编程技术网

将参数从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

如何将参数从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\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
书的前几页中-也可以通过使用您的问题标题进行互联网搜索来确定