在C ++中读取文本文件时跳过特定的东西

时间:2014-12-24 14:09:36

标签: c++

我已设法将所有更新的联系人保存到.txt文件中。现在我的下一步是将这些联系人加载到链接列表中(正如您所知,当控制台关闭时,链接列表被破坏但联系人仍然存在于.txt文件中,因此我要做的是:当我下次运行该程序时,它应该将从txt文件保存的联系人加载到链接列表中)。具体来说,我想问一下,有什么简单的方法可以跳过这些“姓名:”“姓:”“地址:”“电话号码:”部分用于保存到字符串中? PS我知道如何从txt文件加载东西,但我不知道如何跳过其中的一些。我将使用getline()进行加载。 我知道这样做的一个基本方法是我不应该将这些不相关的部分输出到txt文件中,但是没有它可能是因为我也希望txt文件非常详细而不是原始形式。 http://i.imgur.com/1IG3FeN.png

2 个答案:

答案 0 :(得分:1)

在getline之后,您可以找到所有可以找到"的索引:"使用类' string'中的方法find()或indexOf()。然后使用此索引执行substr到最后。以下是两个函数http://www.cplusplus.com/reference/string/string/substr/

的示例

答案 1 :(得分:0)

由于文本是如此简单的解析格式而且它是相同的,你可以用getline()读取整行,就像你现在正在做一个缓冲区并将你想要的子字符串复制到实际的链表。另一个解决方案是使用cin几次到一个临时变量来吞噬垃圾,然后将数据读取到变量,这很容易,因为cin跳过空格。

可能有更多花哨的解决方案,但这应该有用。