Как читать файл строка за строкой, и разделить каждую строку

Мне нужно прочитать файл строка за строкой и сохранить первое слово каждой строки в одной строке, а следующие слова на той же строке в другой строке.

Пример строки: aardvark n. Млекопитающее с трубчатой мордой и длинным языком, питающееся термитами. [африкаанс]

Мне нужно сохранить первое слово в переменной word, а остальную часть строки в переменной определения класса dictionaryEntry.

В java я бы использовал string.split () или string.indexOf () но я не могу понять, как я буду делать это в C++

ifstream inp(filename);
while(getline(inp, line))
{
     //separate first word and rest of line
     string word=
     string rest=
     DictionaryEntry de(word, rest);
}
Метки

2 ответа

  1. Как предложил @NathanOliver. Это должно работать:

    std::string FirstWord, line;
    
    while(inp >> FirstWord)
    {
       getline(inp, line);
       // .. your stuff
    }
    
  2. ifstream inp(filename);
    while(getline(inp, line))
    {
         //separate first word and rest of line
         string word= line.substr(0, line.find(" "));
         string rest= line.substr(line.find(" ") + 1);
         DictionaryEntry de(word, rest);
    }
    

    std::string:: substr: возвращает часть строки.

    std::string:: find: возвращает позицию строки или символа. Возвращает «std::string:: NPO», если нет результатов.