我正在为一个班级开发一个由两部分组成的项目,并完成了第一部分,但在第二部分遇到了麻烦。对于第一部分,我能够从文件和向量中读取列表以使用各种函数进行操作。此部分的列表如下所示:
banana
apple
pineapple
grapefruit
orange
pear
grape
lime
lemon
我能够完成。对于第一部分,我只是有一个字符串向量。但是,第二部分向这些值引入了数量。此部分的列表如下:
foo 5
bar 4
baz 2
boz 1
foo 3
此时,我不确定如何将item作为字符串读取,以及后面跟随的相应int。对于重复的项目,它们应该添加到该项目的原始值。我计划有一个对象的矢量,它有一个名称和数量可以操作,但我需要先读取文件。谢谢你的帮助!
这就是我最初阅读文件的方式
if (fileIn.is_open()){
//file opened successfully so we are here
ifstream inf(fileName + ".txt");
string word;
while (inf >> word)
{
currentSet.push_back(word);
}
答案 0 :(得分:4)
做一些像:
map<string, int> vals; //or some other data structure
ifstream ifs(somefile);
string word;
int i;
while(ifs >> word >> i) {
vals[word] += i;
}
只需一个接一个地阅读它们。当然,您可以根据需要添加错误检查。但我推荐地图数据结构,以便于访问和操作。