所以我有一个像这样格式的txt文件
名称
高度升
高度升
高度升
高度升
高度升
奖
我有两个名为kennlinie和pumpe
的结构struct kennlinie {
int liter;
int hoehe;
};
struct pumpe {
char name[20];
kennlinie pkt[5];
float preis;
};
我还有一个变量pumpe pump[9]
。
pump[i].name
应包含名称,pump[i].pkt[j].hoehe
高度,pump[i].pkt[j].liter
升和pump[i].prize
价格。
将数据从txt导入数组的最佳方法是什么?
答案 0 :(得分:1)
最好的方法,恕我直言,是让他们的成员阅读课程。这些类知道成员类型和数量。研究"数据隐藏"和"封装"。
这是通过重载operator>>
来实现的。
class Height_Liters
{
public:
friend std::istream& operator>>(std::istream& input, Height_Liters& hl);
private:
unsigned int height;
unsigned int liters;
};
std::istream& operator>>(std::istream& input, Height_Liters& hl)
{
input >> hl.height;
input >> hl.liters;
};
现在你可以做这样的事情来阅读Height Liters行:
Height_Liters hl;
std::vector<Height_Liters> database;
//...
my_data_file >> hl;
database.push_back(hl);
//...
但是,由于没有迹象显示有多少行,您可能希望以不同方式阅读:
std::string name;
unsigned int height;
unsigned int liters;
unsigned int prize;
std::getline(my_data_file, name); // read first row
while (my_data_file >> height)
{
prize = height; // Just in case
if (my_data_file >> liters)
{
Height_Liters hl(height, liters);
database.push_back(hl);
}
}