gpt4 book ai didi

C++ 只读取文件中的随机行

转载 作者:行者123 更新时间:2023-11-28 07:39:01 32 4
gpt4 key购买 nike

我需要读取文本文件,但它太大了,所以我决定只读取该文件中的一些行。我可以使用 seek 方法跳转给定行吗?然后我只能读取该行,因为该文本文件太大,读取整个文件浪费了很多时间。如果不可能,有人会为此提供更好的解决方案吗? (寻找给定的行并读取它)(我知道二进制文本文件是逐字节读取的)

我的文件的例子

event1 0

subevent 1

subevent 2

event2 3

(在我的文件中,一个事件后它显示我想为上一个事件寻找的行数)

最佳答案

是的,您可以定位到文件中的某个点,然后从那里读取。一个可能的问题是,如果所有行的长度都不同,则文件中的随机位置将有更高的概率位于更长的行中:您没有得到不同行的均匀分布概率。如果你真的真的必须有相同的概率,那么你需要至少遍历文件以找到每一行的开头 - 然后你可以将这些偏移量存储在一个 vector 中并随机选择一个 vector 元素来指导查找行数据在文件中。如果您只关心一点点,那么您也许可以将少量但随机的行推进到您最初寻求的行之后......这会稍微增加一些几率,避免最初的通过,但并不完美。 hansmaad 的评论也添加了一种简洁的方法 - 完美的结果和相当不错的性能 - 但要求您在文件本身中对所有行进行编号。

关于C++ 只读取文件中的随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212958/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com