2017-06-05 42 views
-2

所以我有点难以忍受这一点,我正在阅读包含数据的两种类型行的文件,它们由一个数字开始,后跟一个逗号。我需要一种方法,以便将具有相同起始数字的行匹配到一行并输出。我怎么会开始?在启动标识符的文本文件中匹配行

+1

/mcve)到目前为止你所尝试的,而不是仅仅寻求帮助。有你的声誉的人应该明白这一点。 –

+0

@ArnavBorborah我没有要求代码。如果我暗示这一点,我很抱歉,我甚至会满足于一个简单的假想或解释如何接近它。 – Annabelle

回答

1

我会通过阅读两部分中的每一行来完成此操作:逗号前的内容以及后面的内容。

然后,我会有一个map(或unordered_map),其中逗号为键之前的值,其余为与其关联的值。

std::map<std::string, std::string> data; 

std::string key, value; 

while (std::getline(infile, key, ',')) { 
    std::getline(infile, value); 
    data[key] += value; 
} 

然后(大概)你想要写出来的值:也许通过给予[最小,完整,可验证的示例](https://stackoverflow.com/help

for (auto const &v : data) 
    std::cout << v.first << ":" << v.second << "\n"; 
+0

这非常有道理。谢谢你的想法! – Annabelle

+0

我认为你的意思是'v.second',而不是'v.data'? –

+0

@ArnavBorborah:哎呀 - 是的。 –

相关问题