C++ 解析命令行参数和布尔值
C++ Parse command line parameters and bool
所以,我正在尝试添加一些东西,允许我使用 argv 允许三个命令行输入。
这样:
./program input.dat (string input)
所以(我假设)argv[0] = input.dat
和argv[1] = string input
,argue[2] = file output
。我不确定我是否正确解释,但这是我最大的努力。我想做的是有一个命令行输入,允许我有喜欢,如果它说"加密",它会使布尔值为真,如果我键入"解密",它将该布尔值设置为 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!
}
}
或者使用字符串:
std::string filename = argv[1];
std::string mode = argv[2];
if (mode == "encrypt") {
// etc.
}
你可以有很多参数,没有什么可以阻止你打电话:
./program hi everybody this is a little excessive but just an example
此时,你会被调用argc == 12
,例如,argv[5]
指向"a"。
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 重载更少,则运算符返回相反的布尔值
- void 函数可以传递值参数吗?
- 将此布尔值传递给此函数的最有效方法是什么?
- 如何设置 c++ 类的布尔值?
- 使用 MAKEWORD / MAKEWPARAM 使用布尔值而不是布尔值
- 将 10 个线程与原子布尔值同步
- 了解布尔运算符==(参数 1,参数 2)
- 创建类似于布尔值的变量类型
- 类中的虚拟布尔函数参数不起作用
- 布尔值向量的基于范围 for 循环
- 零点和布尔值之间的比较
- 检查类是否具有模板专用化(使用布尔值或 int 等模板参数)
- 显式(布尔值)可以作用于字符文字参数的长度吗?
- 如何在布尔值 true 参数上使用函数更改数组的值
- 在命令行程序中使用布尔值。找不到定义标志并检查它们是否在参数中的方法
- C++ 解析命令行参数和布尔值
- SFINAE 尝试使用布尔值给出编译器错误:"模板参数'T::value'涉及模板参数"