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;
}
}
假设我有一个包含以下数据的 .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;
}
}