如何从C ++文件中读取字符串和相应的int?

时间:2014-06-17 13:54:11

标签: c++ string file-io int

我正在为一个班级开发一个由两部分组成的项目,并完成了第一部分,但在第二部分遇到了麻烦。对于第一部分,我能够从文件和向量中读取列表以使用各种函数进行操作。此部分的列表如下所示:

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);
    }

1 个答案:

答案 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;
}

只需一个接一个地阅读它们。当然,您可以根据需要添加错误检查。但我推荐地图数据结构,以便于访问和操作。