我想创建一个程序,它可以从文件中的某个点读取文件。 例如,如果我有一个包含此文本的文件:
1:
Hello world. THis is the first string
2:
Hello. This is the second string
3:
Hi!
所以,现在我必须提交文件,如何让程序只读取第二个字符串?
答案 0 :(得分:3)
对于本质上是动态的文本文件,您将从头开始在循环中使用getline()。如果它不经常更改,你可以记录绝对文件位置,然后检查文件修改日期,以决定是否在自上一个循环getline()以来没有被修改的情况下进行直接搜索,或者再次循环。文件I / O例程中没有任何魔法可以记住每个字符串在文件中的结束位置。
答案 1 :(得分:1)
我不会为你写任何代码,只会说明我会这样做的方式。
假设:
字符串开始的格式,例如1:,2:等不会出现在字符串的内容中。
方法:
从文件的开头开始,每次都执行seekg()并递增get指针,除非你找到你正在看的2个字符,例如“2:”。 停在那里,开始提取你的内容,直到找到“number:”形式的下两个字符,例如“3:”。
如果您描述的文件格式是这样的,您可以使用getline()来获取每一行。这样您就不必移动每个字符的指针,但仅当文件中的数据采用某种格式时才有效。