getline не работает и выдает ошибку

Что нужно сделать, чтобы getline заработал. Выводит вот такую ошибку. Использовал cin.ignore(). но ошибка осталась.

введите сюда описание изображения

введите сюда описание изображениявведите сюда описание изображения

#include <iostream>
#include <map>
#include <string>
#include <vector>

using namespace std;

int main() {
    int kov;
    cin >> kov;
    map <string, vector <string>> m;
    map <string, vector <string>> m1;
    for (int i = 0; i < kov; i++) {
        string s, word, els;
        vector <string> v = {""};
        getline(cin, s);
        for (int j = 0; j < s.size() - 1; j++) {
            if (s[j] != ' ') {
                word.push_back(s[j]);
            }
            if (s[j] == '-') {
                els.push_back(s[j + 1]);
            }
        }
        cout << word;
        for (char j : els) {
            if (j == ',') {
                v.push_back("");
            }
            else {
                v.back().push_back(j);
            }
        }
        m[word] = v;
    }
    for (auto i : m) {
        cout << i.first << " : ";
        for (string j : i.second) {
            cout << j << " ";
        }
        cout << "\n";
    }
    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Я бы делал так:

int main()
{
    map<string,set<string>> dict;
    for(string s; getline(cin,s);)
    {
        char * c = strtok(s.data()," -");
        string e = c;
        for(c = strtok(0," -,");c;c = strtok(0," -,"))
        {
            string l = c;
            dict[l].insert(e);
        }
    }
    cout << dict.size() << endl;
    for(const auto& d: dict)
    {
        cout << d.first << " - ";
        bool comma = false;
        for(const auto& c: d.second)
        {
            if (comma) cout << ", ";
            cout << c;
            comma = true;
        }
        cout << endl;
    }
}

И если это вот эта задача, то учтите, что они нахомутали: в условии сказано, что первая строка — число N, но на самом деле никакой строки с числом там нет...

→ Ссылка