C ++ читает данные из файлов - PullRequest
0 голосов
/ 07 мая 2018

Допустим, у меня есть файл .txt с этими данными:

1 Lipton 2  
2 CocaCola 2.5  
3 Pepsi 2

Идентификатор для каждого предмета до него, а цена после. После того, как я прочитал файл, и он работает, как мне поступить, если я хочу выбрать идентификатор 2 и отобразить его цену, умноженную на 2?

1 Ответ

0 голосов
/ 07 мая 2018

Один из способов - сохранить данные в std::vector:

class Drink
{
    unsigned int id;
    std::string  name;
    double       price;
    friend std::istream& operator>>(std::istream& input, Drink& d);
};

std::istream& operator>>(std::istream& input, Drink& d)
{
    input >> d.id;
    input >> d.name;
    input >> d.price;
    return input;
}

Ваш код ввода будет выглядеть так:

std::ifstream drink_file("drinks.txt");
std::vector<Drink> database;
Drink d;
while (drink_file >> d)
{
    database.push_back(d);
}

Вы можете найти в database напиток с ID == 2:

size_t quantity = database.size();
for (size_t index = 0; index < quantity; ++index)
{
    if (database[index].id == 2)
    {
       // Do something with record ID 2.
       break;
    }
}
...