Сохранение текста из текстового файла в шесть различных векторов (C ++) - PullRequest
0 голосов
/ 08 ноября 2019

Мне нужно сохранить текст из текстового файла в несколько разных векторов. Текстовый файл будет выглядеть примерно так: 1111 Посудомоечная машина 20 250.50 550.50 2222 Micro Wave 75 150.00 400.00 3333 Диапазон приготовления 50 450.00 850.00 4444 Циркулярная пила 150 45.00 125.00

и мои векторы такие:

vector<int> iID;
 vector<string> iName;
 vector<int> pOrdered;
 vector<int> pInStore;
 vector<double> manufPrice;
 vector<double> sPrice;

, поэтому информация из текстового файла должна быть iID, iName, pOrdered, pInStore, manufPrice, sPrice в таком порядке, но я не уверен, как реализовать такой код.

1 Ответ

0 голосов
/ 09 ноября 2019

ИМХО, вам следует держаться подальше от параллельных массивов и моделировать данные, используя struct:

struct Record
{
    int id;
    std::string name;
    int p_ordered;
    //...
    friend std::istream& operator>>(std::istream& input, Record& r);
};

std::istream& operator>>(std::istream& input, Record& r)
{
    input >> r.id;
    input >> r.name;
    //...
    return input;
}

Ваш входной код может выглядеть следующим образом:

std::vector<Record> database;
Record r;
while (infile >> r)
{
    database.push_back(r);
}

Одна проблемас параллельными массивами есть вероятность, что они могут выйти из синхронизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...