C++从文件中读取数据

C++ read data from files

假设我有一个包含以下数据的 .txt 文件:

1 Lipton 2  
2 CocaCola 2.5  
3 Pepsi 2

每件商品的 ID 在它之前,价格在它之后。 读取文件成功后,如果我想选择ID 2并显示它的价格乘以2怎么办?

一种方法是将数据存储到 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;
    }
}