gpt4 book ai didi

c - 使用c在文件中跳行

转载 作者:行者123 更新时间:2023-11-30 18:06:54 25 4
gpt4 key购买 nike

你好,我正在尝试使用 C 编程语言对文本文件进行排序,为了对文件进行排序,我使用唯一的键,我需要能够从一行跳转到另一行以便对文件进行排序,问题是我不知道 c 中是否有一个命令让我从第一行跳转到让我说以20行为例我知道的唯一解决方案是每次使用 fscanf 和循环但这个解决方案不是很有效编辑:
我遇到的另一个问题是我无法将所有文件读取到内存中这是文件管理类(class)中给出的某种作业,我在进行实际排序时一次只能读取 2 条记录

事情是这不是一个二进制文件,选项如函数

 fseek(filepointer,number of bits,SEEK_SET)

这里无法帮助我,因为我需要跳线

预先感谢您的宝贵时间。

最佳答案

C 库没有跳转到文件中特定行的函数。

您可以做的(除了将整个文件读入内存之外)是读取一次文件,并将每行的起始位置存储到一个数组中。使用该数组,您可以直接查找每行的开头。

但是您可以更进一步:由于您根据键对文件进行排序,因此无需始终读取整行。您可以读取该文件一次,将行的键及其文件位置存储在内存中并对其进行排序。

最后,探索不需要随机文件访问的其他排序算法(以 IO 密集性能为代价)可能会很有用 - 我想到了合并排序。

关于c - 使用c在文件中跳行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5262374/

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