Чтение строк из текстового файла и помещение строк в вектор?

Я пытаюсь прочитать каждую строку текстового файла, каждая строка которого содержит одно слово, и поместить эти слова в вектор. Как мне это сделать?

Это мой новый код: Я думаю, что в нем все еще что-то не так.

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    std::string line;
    vector<string> DataArray;
    vector<string> QueryArray;
    ifstream myfile("OHenry.txt");
    ifstream qfile("queries.txt");

    if(!myfile) //Always test the file open.
    {
        cout<<"Error opening output file"<<endl;
        system("pause");
        return -1;
    }
    while (std::getline(qfile, line))
    {
        QueryArray.push_back(line);
    }
    if(!qfile) //Always test the file open.
    {
        cout<<"Error opening output file"<<endl;
        system("pause");
        return -1;
    }

    while (std::getline(qfile, line))
    {
        QueryArray.push_back(line);
    }

    cout<<QueryArray[0]<<endl;
    cout<<DataArray[0]<<endl;

}
23
задан Luksprog 26 September 2012 в 12:49
поделиться

1 ответ

Простейшая версия:

std::vector<std::string> lines;
for (std::string line; std::getline( ifs, line ); /**/ )
   lines.push_back( line );

Я опускаю включает в себя и другие ганк. Моя версия почти такая же, как FailedDev, но с помощью цикла for я поместил объявление 'line' в цикл. Это не просто хитрость, чтобы уменьшить количество строк. Это уменьшает область действия строки - она ​​исчезает после цикла for. Все переменные должны иметь наименьшую возможную область видимости, поэтому это лучше. Ибо петли потрясающие.

19
ответ дан 29 November 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: