我在多映射中得到了两次相同的密钥,它只存在于文本文件中
I got a identical Key twice in a multimap, it just exists one in the textfile.
我对multimap有问题。我读了一份文件,里面每个月都存放着Years和Temepatures。
2011 9.23 3.23 4.23等等。
现在我想把每年的平均温度写回一个文件。
我用了一个多重映射。double存储我的平均温度,从我的类Year中,我调用getYear()方法来获得适合平均温度的Year。
我需要多映射,因为有相同的平均温度。
但如果我现在查看输出文件,我会发现2011年有两次平均温度相同
在输入文件中,2011年只写了一次。
我会两次得到相同的年份吗,因为它在输入文件的和处?所以问题可能来自于读取最后一行的文件?
outputf文件的外观如下:
1994 9.7025
2011年9.635
2011年9.635
2002年9.55667
我的字符串流ohneKomma存储输入文件。
while(ohneKomma)
{
Year year;
ohneKomma >> _jahr;
year.setJahr(_jahr);
ohneKomma >> _d1;
ohneKomma >> _d2;
ohneKomma >> _d3;
//and so on....
year.setAvgTemps(_d1, _d2, _d3, _d4, _d5, _d6, _d7, _d8, _d9, _d10, _d11, _d12);
map2.insert(make_pair(year.getMittelwert(), year));//fallend
;
}
我希望你们能帮助我,为我糟糕的英语感到抱歉,但我希望你们理解我的意思:)
感谢
更改代码以检查输入是否成功作为while
条件:
while(ohneKomma >> jahr >> _d1 >> d2 ....)
{
Year year;
year.setJahr(_jahr);
year.setAvgTemps(_d1, _d2, _d3, _d4, _d5, _d6, _d7, _d8, _d9, _d10, _d11, _d12);
map2.insert(make_pair(year.getMittelwert(), year));//fallend
}
在流的末尾尝试读取之前,流不会失败。您需要在第一次读取操作后检查流状态。
while(ohneKomma)
{
Year year;
ohneKomma >> _jahr;
if(!ohneKomma)
break;
year.setJahr(_jahr);
// ...
}
将代码修改为如下。它会做同样的事情,但更好。
while(ohneKomma >> _jahr) //change here.
{
Year year;
year.setJahr(_jahr); //note the modification here too.
ohneKomma >> _d1;
ohneKomma >> _d2;
ohneKomma >> _d3;
//and so on....
year.setAvgTemps(_d1, _d2, _d3, _d4, _d5, _d6, _d7, _d8, _d9, _d10, _d11, _d12);
map2.insert(make_pair(year.getMittelwert(), year));//fallend
;
}
这是读取文件的正确方法,不会遇到奇怪的EOF错误。
相关文章:
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 允许从 std::map 的密钥窃取资源?
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 在没有密钥的情况下读取密文的剩余噪声预算
- 如何修复无效的API密钥,IP或操作权限错误?
- 所有可能的链接生成器与64位密钥
- 如何在unordered_map中更改密钥?
- 获取当前密钥状态?
- curl_easy_perform() 失败:SSL 对等证书或 SSH 远程密钥不正常
- 将密钥发送到非前台的游戏窗口
- 有哪些方法可以对基于 256 位密钥的矩阵进行加扰?
- 为什么在打印Un_ordered Map and Map(字典)的密钥和值时存在异常
- 如何使用 AWS CPP SDK 检查 AWS S3 密钥是否存在
- 检查最后一个项目是否通过地图密钥存在
- Boost property_map测试密钥是否存在?
- 检查密钥是否已存在(RegOpenKey)
- Cocos2D X:如何检查plist文件是否存在密钥
- 我在多映射中得到了两次相同的密钥,它只存在于文本文件中
- 为什么RegOpenKeyEx允许我打开注册表编辑器中不存在的密钥?
- 如何查看地图中是否存在密钥