mardi 12 février 2019

How to read input from file and pair into a map in C++

I am trying to read through a text file that can possibly look like below.

HI bye
goodbye

foo bar
boy girl
one two three

I am trying to take the lines with only two words and store them in a map, the first word would be the key and second word would be the value.

below is the code I came up with but I can't figure out how to ignore the lines that do not have two words on them.

  • this only works properly if every line has two words. I understand why this is only working if every line has two words but, I'm not sure what condition I can add to prevent this.

pair myPair; map myMap;

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;
}

Aucun commentaire:

Enregistrer un commentaire