使用fgets()读入和存储

时间:2010-09-20 13:24:49

标签: c fgets

我正在使用fgets从简单文件(如txt文件)读取文本,但是我需要能够跳回到前面的行。无论如何使用fgets做到这一点?或者我应该将文本存储在某种数组/结构中?

2 个答案:

答案 0 :(得分:2)

fseekfgetposfsetpos的组合是合适的。 AFAIK,没有“转到第X行”功能;您必须使用fseekfsetpos移动来保存关于每一行的一些信息(例如其起始位置)。

答案 1 :(得分:1)

您可以使用fseek()和朋友(http://linux.die.net/man/3/fseek)来解决您的问题。

但是,将“fseek”函数与文本文件混合(特别是如果您正在读取和写入相同的流)可能会因换行的库转换而导致问题。

如果你对内存的关注度不是很高,我会选择保存前一行的信息。

更好的是,如果可能的话,请检查您的算法/数据结构,以便您不需要返回。