【发布时间】:2019-02-13 05:56:32
【问题描述】:
我正在尝试阅读可能如下所示的文本文件。
HI bye
goodbye
foo bar
boy girl
one two three
我试图将只有两个单词的行存储在地图中,第一个单词是键,第二个单词是值。
下面是我想出的代码,但我不知道如何忽略上面没有两个单词的行。
- 这只有在每行有两个单词时才能正常工作。我理解为什么这只有在每行都有两个单词时才有效,但是我不确定我可以添加什么条件来防止这种情况。
配对我的配对; 映射我的地图;
while(getline(file2, line, '\0'))
{
stringstream ss(line);
string word;
while(!ss.eof())
{
ss >> word;
myPair.first = word;
ss >> word;
myPair.second = word;
myMap.insert(myPair);
}
}
map<string, string>::iterator it=myMap.begin();
for(it=myMap.begin(); it != myMap.end(); it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
【问题讨论】:
-
读一个单词,如果失败不添加。读第二个字。如果失败,请不要添加。读第三个字。如果它成功,则不要添加。只有当您阅读两个单词时,您才能添加。
-
'\0'不是此处使用的正确分隔符。您确定此代码按原样工作吗?