首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

语句位置的不同导致的异常

2013-06-26 
语句位置的不同导致的错误?while(getline(input,line)){istringstream stream(line)string wordbool fir

语句位置的不同导致的错误?

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<<" ";
       // word=map_it->second; //运行产生错误
cout<<word;
}
cout<<endl;
}

我不明白,中间的firstword对map_it应该没有影响吧,为什么会导致不同的结果呢? c++
[解决办法]
有影响的
你的if else语句最好用 { }分开,例如:
if (...)

      ......
}
else
{
      ......
}
[解决办法]
关于你的代码的说明:

        if(map_it!=trans_map.end())
            word=map_it->second;  //运行成功 //说明,这条语句执行的条件,前面if条件成立
            if(firstword)
                firstword=false;
            else cout<<" ";
           // word=map_it->second;     //运行产生错误//不管if(map_it!=trans_map.end()) 是否成立都要执行,肯定要最后出界错误

热点排行