运用地图容器实现单词转换,求高手相助。

运用map容器实现单词转换,求高手相助。。。
//用map容器实现单词的转换。
//这个是C++primer上的程序,有好多错误,我是新手,改不过来,求高手相助。
#include<iostream>
#include<string>
#include<map>
#include<fstream>
#include<sstream>
using namespace std;
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;
}
return 0;

}

------解决方案--------------------
C/C++ code

#include<iostream>
#include<string>
#include<map>
#include<fstream>
#include<sstream>
using namespace std;
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;

    map_file.open(argv[1]);
    if(!map_file.is_open())
        throw runtime_error("no transformation file");
    while(map_file>>key>>value)
        trans_map.insert (make_pair(key,value));

    ifstream input;
    input.open(argv[2]);

    if (!input.is_open())
        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;
    }
    return 0;

}
//你去修改一下你的文件,去建立一个就可以了

------解决方案--------------------
不久之前 我就做了这个题目:
给我看看我自己写的:
[code=C/C++][/code]
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <map>
using namespace std;
int main(int argc,char **argv)
{
 
if (argc!=3)
{
throw runtime_error("参数错误");
}
 
ifstream findfile;
  ifstream transfile;
string f1=argv[1];
cout<<f1<<endl;
  string f2=argv[2];
  cout<<f2<<endl;
findfile.open(argv[1]);
  transfile.open(argv[2]);
if (!findfile&&!transfile)
{
cerr<<"open error"<<endl;
return -1;
}

map<string,string> findmap;
string str1,str2;
while(findfile>>str1>>str2)
findmap.insert(make_pair(str1,str2));
vector<string> str;
string s;
while (transfile>>s)
{
str.push_back(s);
}
cout<<"---------------"<<argv[2]<<"---------------"<<endl;
for (vector<string>::iterator it=str.begin();it!=str.end();it++)