我正在为一个类(class)做一个分为两部分的项目,我已经完成了第一部分,但在第二部分遇到了麻烦。对于第一部分,我能够从文件中读取列表并将其读取到 vector 中以使用各种函数进行操作。此部分的列表如下所示:
banana
apple
pineapple
grapefruit
orange
pear
grape
lime
lemon
我能够完成。对于第一部分,我只有一个字符串 vector 。但是,第二部分介绍了这些值的数量。本节的列表如下:
foo 5
bar 4
baz 2
boz 1
foo 3
在这一点上,我不确定如何将 for item 读取为字符串以及它后面的相应 int。对于重复的项目,它们应该添加到该项目的原始值中。我正计划有一个对象 vector ,它有一个名称和一个要操作的数量,但我需要先读取文件。感谢您的帮助!
这是我最初阅读文件的方式
if (fileIn.is_open()){
//file opened successfully so we are here
ifstream inf(fileName + ".txt");
string word;
while (inf >> word)
{
currentSet.push_back(word);
}
最佳答案
只需执行以下操作:
map<string, int> vals; //or some other data structure
ifstream ifs(somefile);
string word;
int i;
while(ifs >> word >> i) {
vals[word] += i;
}
只需一个接一个地阅读它们。当然你可以根据需要添加错误检查。但我推荐 map 数据结构,以便于访问和操作。
关于c++ - 如何从 C++ 文件中读取字符串和相应的 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24265706/