По сути, я пытаюсь прочитать слова из файла и без знаков препинания прочитать каждое слово в мультикарту, которая затем вставляется в вектор, где каждая пара представляет собой слово, а строка файла - это слово.найденный.У меня есть функция удаления пунктуации, которая работает отлично, и я вполне уверен, что мой код вставки работает правильно, но я не могу обойти часть номера строки.Я включил этот раздел своего кода следующим образом:
ifstream in("textfile.txt");
string line;
string keys;
stringstream keystream;
int line_number = 1;
while (getline(in, line, '\n')) {
alphanum(line);
keystream << line;
while(getline(keystream, keys, ' '))
table.insert(keys, line_number); //this just inserts the pair into my vector (table is an instance of a class I created)
keystream.str("");
line_number++;
}
Проблема, похоже, связана с stringstream
.Кажется, не ясно, когда я использую keystream.str("")
.Этот конкретный метод, кажется, только читает строку 1 в и затем выходит из цикла, тогда как некоторые другие варианты, которые я пробовал (я не помню точно, что я сделал), читают весь файл, но не сбрасывают stringstream
, поэтомучитается как слово 1, слово 1, слово 2, слово 1, слово 2, слово 3 и т. д. В любом случае, если кто-нибудь может указать мне правильное направление или, возможно, ссылку на руководство, специфичное для синтаксического анализа ввода в c ++, которое будет оченьоценили!Спасибо!