这个程序的功能是这样的:给定一个string,将它转换为另一个string,程序的输入是两个文件。第一个文件保存的是一些规则,用来转换第二个文件中的文本,每条规则有两部分组成--一个可能出现在输入文件中的单词和一个用来替换为对应的短语,第二个输入文件包含要转换的文本。
程序如下:
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <sstream>
#include <fstream>
map<string, string> buildMap(ifstream &map_file) //读入给定rules.text文件,建立转换映射
{
map<string, string> trans_map; //保存转换规则
string key; //要转换的单词
string value; //替换后的内容
//读取第一个单词存入key中,行中剩余内容存入value
while (map_file >> key && getline(map_file, value))
if (value.size() > 1) //检查是否有转换规则
trans_map[key] = value.substr(1);
else
throw runtime_error("no rule for " + key);
return trans_map;
}
const string &transfo