求助:如何读入文件!附一段程序。。
#include <iostream>#include <map>
#include <fstream>
#include <sstream>
#include <stdexcept> /*throw*/
using namespace std;
ifstream& open_file(ifstream &in,const string &file)
{ in.close();
in.clear();
in.open(file.c_str());
return in;
}
int main(int argc,char **argv)
{
map<string,string> trans_map;
string key,value;
if (argc!=3)
throw runtime_error("wrong number of arguments");
ifstream map_file;
if (!open_file(map_file,argv[1]))
throw runtime_error("no transformation file");
while (map_file>>key>>value)
trans_map.insert(make_pair(key,value));
ifstream input;
if (!open_file(input,argv[2]))
throw runtime_error("no input file");
string line;
while (getline(input,line))
{ istringstream stream(line);
string word;
bool firstword=true;
while (stream>>word)
{ map<string,string>::const_iterator map_it=trans_map.find(word);
if (map_it!=trans_map.end())
word=map_it->second;
if (firstword)
firstword=false;
else cout<<" ";
cout<<word;
}
cout<<endl;
}
getchar();
return 0;
}
程序编译通过。。运行一闪而过。。没看清楚是什么。。
程序大意:输入两个文件,第一个文件包含诺干单词对,每对的第一个单词出现在输入的字符串中,而第二个单词则是用于输出。。
本质上这个文件提供的是单词转换的集合——在遇到第一个单词时,应该将之替换为第二个单词。第二个文件则提供了需要转换的文本。
就是不知道怎么读入文件。。求教。。谢谢。。。