之前看代码的时候看到boost::filesystem和boost::program_options,顺便学习了一下(很粗浅的那种T_T),写了下面这个小程序练练手。
另外关于boost说一句,boost可认为是C++ STL的后备库,STL哪天心情好就会把一些boost的内容也加进去。boost库也像其他外部库一样,想要使用的话需要把它下载安装编译,在我的另一篇转载博客里面有相关教程,最后需要添加头文件目录,lib目录和添加lib等操作。
下面的程序有三个参数 --help,-I和-O,分别是帮助,输入路径和输出路径。功能是把输入路径的全部文本读进去,然后进行一些我们需要的中间操作,再把操作后的同名文本生成到输出路径。在这里为简单起见,中间操作是把输入文本的两个数相加,然后输出到输出文本中。
备注:输出路径应预先建立,程序里面没有提供新建输出路径的功能。(其实是我在这个环节上遇到了问题,但是偷懒没想怎么解决)
代码如下:
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
#include<algorithm>
#include<boost/filesystem.hpp>
#include<boost/program_options.hpp>
using namespace std;
namespace fs = boost::filesystem;
namespace po = boost::program_options;
int main(int argc, char*argv[])
{
string input_dir, output_dir; //文件输入和输出路径
vector<fs::path> v;
double result[100];
po::options_description desc("Allowed options"); /