gpt4 book ai didi

c++ - 如何使用转到文件的第 m 行和第 n 个字符?

转载 作者:行者123 更新时间:2023-11-30 05:44:28 26 4
gpt4 key购买 nike

如果我想从文件中的第 m 行第 n 个字符插入或复制某些内容,我应该怎么做?有没有比使用 m 次 getline 和 seekp 更好的方法?谢谢。

最佳答案

Is there a way better than using getline for m times and seekp?

不是真的!行在操作系统级别并不“特殊”;它们只是由换行符分隔的文本文件的一部分。到达文本文件的 m 行的唯一方法是通读整个文件,直到看到 m - 1 换行符。您的 C++ 库的 getline() 函数可能已经非常有效地实现了该操作,因此您最好只使用它。

如果您的应用程序需要在单次运行期间多次查找大文件的特定行,则在启动时将整个文件读入数据结构(例如,一个结构数组,每个结构代表一行文字);完成此操作后,查找特定行就像查找数组一样简单。但是,如果您只需要查找特定行一次,则没有必要。

对于在较大文件中重复查找的内存效率更高的方法可能是记录遇到的每个行号的文件偏移量,这样您就可以轻松返回给定行而无需从头开始。不过,同样,只有在多次重复查找时才需要这样做。

关于c++ - 如何使用转到文件的第 m 行和第 n 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837471/

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