2012-06-23 4 views
1

У меня есть текстовый файл с разделителями пробелов, из которого мне нужно извлечь отдельные слова, чтобы заполнить vector<string>.C++ Заполнение вектора строк из текстового файла с разделителями-пробелами

Я пробовал играть с strtok, но я понимаю, что это не работает, потому что strtok возвращает char pointer. Любой способ извлечь слова из файла и заполнить их string vector? Благодаря!

+1

'ifstream плавник (имя файла); строковое слово; fin >> word; ' – Beta

+1

[Этот ответ] (http://stackoverflow.com/a/237280/1336150) также может помочь вам ... –

+1

Возможный дубликат [Как читать в информации, разделенной пробелами, из файла в C++] (http://stackoverflow.com/questions/2530738/how-to-read-in-space-delimited-information-from-a-file-in-c) –

ответ

5

Есть «любитель» способы, но, на мой взгляд, следующие наиболее понятным (и полезным в качестве основы для изменений) для начинающих:

if (std::ifstream input(filename)) 
{ 
    std::vector<std::string> words; 
    std::string word; 
    while (input >> word) 
     words.push_back(word); 
} 
+1

На всякий случай вам любопытно, что имеется в виду под fancier, 'std :: vector vec ((std :: istream_iterator (in)), std :: istream_iterator ());', где 'in' является объектом' ifstream'. – chris

2

Рассмотрите возможность использования файла ifstream.

Затем вы можете использовать >> operator для перемещения следующего слова в string.

Смежные вопросы