c++ - 从文件读取到向量
问题描述
我正在从文件中读取以下数据。我需要实现的是最后用具有 CTurist 对象的 CHotel 对象填充向量 m_hoteli。第 2-5 行是有变量的酒店,在大数字(500,400,300,600)之后,就是每个酒店的游客。
当我运行它时,我的向量会填充来自文件的信息,但会填充有关游客的详细信息作为酒店数据,因此我无法在输入和 CTurist 之间建立正确的连接。
玛丽娜 5 500 乔 21 1 蒂绍 20 6 维多利亚 31 20
郁金香 4 400 莎拉 41 17 罗西莎 49 14 瓦莱莉亚 24 2
黑海 3 300 约翰 35 12 乔恩 35 11 詹尼 28 6
瑞士贝尔 5 600 欧林 26 1 玛格丽塔 27 2 朱丽叶 31
class CComplex:CHotel
{
protected:
string m_complex;
vector<CHotel> m_hoteli;
public:
CComplex(){};
CComplex(string filename, string nComplex)
{
string str;
m_complex = nComplex;
fstream file(filename, ios::in);
if (file.is_open())
{
CHotel temp(" ", 0, 0);
while (file >> temp)
{
m_hoteli.push_back(temp);
}
file.close();
}
else
throw "ERROR! ";
}
CHotel(String stringname) 构造函数:
class CHotel : public CTurist //втори клас, наследник на CTurist
{
protected:
string hName; //име хотел
int stars; //звезди на хотела
int beds; //брой легла
public:
map<CTurist, unsigned> Turisti;
unsigned Sum = 0;
int br = 0;
CHotel(){};
CHotel(string s)
{
map<CTurist, unsigned> TR;
bool first = true;
istringstream TList(s);
int i = 0;
while (getline(TList, s, ' '))
{
switch (i)
{
case 0: this->setName(s); break;
case 1: this->setAge(stoi(s)); break;
}
if (i ==2 )
{
if (!first){ setName(getName()); setAge(getAge()); first = true; }
else{ TR[CTurist("", 0)]; }
i = -1;
}
i++;
}
Turisti = TR;
}
解决方案
这是我认为我在构造函数上取得的一些进步。通过断点查看,酒店收到了它的信息,也就是名字、星级和床位,但游客没有。有小费吗?
CHotel(字符串 s){
CTurist b("",0);
bool first = true;
istringstream TList(s);
string Days;
int i = 0;
string ime;
string godini;
if (first == true)
{
while (getline(TList, s, ' '))
{
switch (i)
{
case 0: this->hName = s; break;
case 1:this->stars = stoi(s); break;
case 2:this->beds = stoi(s); break;
}
i++;
if (i == 3)break;
}
first = false;
i = 0;
}
while (getline(TList, s, '|'))
{
switch (i)
{
case 0: ime = s; break;
case 1: godini = s; break;
case 2: Days = s; break;
}
i++;
if (i == 3)
{
CTurist T1("ime", stoi(Days));
//Turisti.insert(pair<CTurist,unsigned>("ime", stoi(Days)));
i = 0;
}
}
}
如何将T1插入mapTuristi???
推荐阅读
- node.js - 如何将猫鼬模型与 Gridfs 集成并关联其他字段,如 req.body.name 和描述之类的东西
- php - 防止 PHP 电子邮件表单显示空白页
- excel - 在 VBA 中使用非恒定列位置过滤、复制和粘贴循环
- json - 添加到 Firebase 的 Firestore 时数据无效
- excel - Web 查询抛出错误:import currenturl 不匹配导出。您是否错过了模块参考?
- vue.js - 将 esri-loader 导入 nativescript
- python - Python:无法使用 openpyxl 打开 excel 文件——文件存在并且位置正确
- html - 字段集的内容正在移出图例容器
- blender - 设置复制的原始 uv 球体的颜色
- android - 用户是否有可能必须按下文件而不是单击以在 action_get_content 中选择它?