执行程序时,经常会用到命令行参数传递参数这种方式,今天实战一个命令行参数的从头到尾。
博文虽长,但均为干货。
先写个主函数
#include<iostream>
int main(const int argc, const char* argv[]) //argc和argv的类型不一样,
{
try{
const auto po = translateParams(argc,argv); //解析函数。先写这,等会在声明实现。
}
}
接下来写解析函数
记录一下program options的用法
program options是一系列pair<name,value>组成的选项列表,它允许程序通过命令行或配置文件来读取这些参数选项.
组件:
1.options_description(选项描述器):描述当前程序定义了哪些选项
2.parse_command_line(选项分析器):解析命令行输入的参数
3.variables_map(选项存储器):容器,用于存储解析后的选项
#include<iostream>
#include<boost/program_options.hpp>
using namespace boost::filesystem;
//定义一个数据库的枚举
enum DataSourceType
{
ORACLE, //oracle类型的数据库
SQLSERVER //sqlserver类型的数据库
};
//定义一个解析结果类型,这里写一个结构体
struct ProgramOptions
{
std::wstring name;
std::wstring pass;
std::wstring host;
std::wstring port;
std::wstring itemID;
std::wstring filePath;