Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
C++解析命令行参数和布尔_C++_Parsing_Command Line_Boolean - Fatal编程技术网

C++解析命令行参数和布尔

C++解析命令行参数和布尔,c++,parsing,command-line,boolean,C++,Parsing,Command Line,Boolean,所以,我尝试添加一些东西,允许我使用argv来允许三个命令行输入 以便: ./program input.dat (string input) 所以我假设argv[0]=input.dat和argv[1]=string输入,argue[2]=file输出 …我不确定我的解释是否正确,但这是我最大的努力。 我想做的是有一个命令行输入,它允许我像这样,如果它说加密,它使bool为true,如果我键入decrypt,它将bool设置为false。要执行您描述的操作: bool encrypt; s

所以,我尝试添加一些东西,允许我使用argv来允许三个命令行输入

以便:

./program input.dat (string input) 
所以我假设argv[0]=input.dat和argv[1]=string输入,argue[2]=file输出

…我不确定我的解释是否正确,但这是我最大的努力。
我想做的是有一个命令行输入,它允许我像这样,如果它说加密,它使bool为true,如果我键入decrypt,它将bool设置为false。

要执行您描述的操作:

bool encrypt;
std::string action(argv[2]);
if (action == "encrypt") {
    encrypt = true;
} else if (action == "decrypt") {
    encrypt = false;
} else {
    // Report invalid argument
}
int main(int argc, char** argv) {
    if (argc < 3) {
        // print usage here and return, since that's what you need.
    }

    const char* filename = argv[1];

    if (!strcmp(argv[2], "encrypt")) {
        // encrypt!
    }
    else if (!strcmp(argv[2], "decrypt")) {
        // decrypt!
    }
    else {
        // error!
    }
}
你可以有很多args,没有什么可以阻止你打电话:

./program hi everybody this is a little excessive but just an example

此时,您将被argc==12调用,例如,argv[5]指向'a`。

argv[0]始终是程序的名称。参数从argv[1]开始。您使用的是什么语言?它不是有一个参数解析库,比如getopt吗?是的,对不起,这就是我的意思。我使用C++,对不起,我把问题搞乱了!我对编程相当陌生这是我第二个学期的结束你能举一个实际的命令行示例吗?或者这个字符串输入的是您传递给程序的实际字符串吗?这只是一个占位符,我真正想做的是让它存在,所以我键入“加密”或“解密”
./program hi everybody this is a little excessive but just an example