所以,我正在尝试添加允许我使用argv来允许三个命令行输入的内容。
这样:
./program input.dat (string input)
这样(我假设)argv[0] = input.dat
和argv[1] = string input
,argue[2] = file output
......我不确定我是否正确解释,但这是我的最大努力。 我想要做的是有一个命令行输入,允许我喜欢,如果它说“加密”它使一个bool为真,如果我键入“解密”它将该bool设置为false。
答案 0 :(得分:3)
bool encrypt;
std::string action(argv[2]);
if (action == "encrypt") {
encrypt = true;
} else if (action == "decrypt") {
encrypt = false;
} else {
// Report invalid argument
}
答案 1 :(得分:0)
做你正在描述的事情:
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!
}
}
或者使用字符串:
std::string filename = argv[1];
std::string mode = argv[2];
if (mode == "encrypt") {
// etc.
}
你可以有很多args,没有什么可以阻止你打电话:
./program hi everybody this is a little excessive but just an example
此时,您将使用argc == 12
进行调用,例如,argv[5]
指向“&#34; a&#34;``。