То, что я сделал здесь, прочитал файл char за char. Увидев символ новой строки, char \n
прервал процесс чтения и написал последнее слово. До появления пробела продолжал добавлять символы в строку с именем str
. Увидев пробел, вставьте str
в вектор и очистите str
, чтобы заполнить его в следующем цикле.
Это просто повторяется, пока не увидит символ новой строки. В конце я напечатал векторное содержимое на экране. Я предоставил пример файла binStr.txt
, который я использовал, и вывод ниже.
Надеюсь, это поможет вам.
#include <string>
#include <vector>
#include <fstream>
#include <iostream>
int main()
{
std::vector <std::string> words;
std::string str;
std::ifstream stackoverflow("binStr.txt");
char c;
while (stackoverflow.get(c))
{
str += c;
if(c == '\n')
{
words.push_back(str);
str.clear();
break;
}
if(c == ' ')
{
words.push_back(str);
str.clear();
}
}
stackoverflow.close();
for (unsigned int i = 0; i < words.size(); ++i)
std::cout << "Word: " << words[i] << "\n";
return 0;
}
Содержимое файла:
test some more words until new line
hello yes
maybe stackoverflow potato
Результат:
Word: test
Word: some
Word: more
Word: words
Word: until
Word: new
Word: line