我正在研究一个C++程序,该程序接受文件名作为命令行输入,从该文件中读取一堆数据,计算关于数据的两件事,然后退出。这些计算之一必须完成,但是其他计算更具选择性,因此我认为添加-c标志以将其关闭将是一件很简单的事情。天真的,我总是假设如果用户提供了两个参数,则第一个必须切换计算,第二个必须提供文件名,但是使用更多的标志会变得更加麻烦。将rm -rf "file"rm -fr "file"rm "file" -rf全部用作有效命令的标准做法是什么?

最佳答案

使用boost program options。例:

po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("compression", po::value<int>(), "set compression level")
;

po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);

if (vm.count("help")) {
    cout << desc << "\n";
    return 1;
}

if (vm.count("compression")) {
    cout << "Compression level was set to "
 << vm["compression"].as<int>() << ".\n";
} else {
    cout << "Compression level was not set.\n";
}

关于c++ - 命令行开关故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3980303/

10-11 19:50