1

我正在使用 fgets 从简单文件(例如 txt 文件)中读取文本,但是我需要能够跳回上一行。反正有没有使用 fgets 来做到这一点?还是我应该将文本存储在某种数组/结构中?

4

2 回答 2

2

fseekfgetpos或和的组合fsetpos是合适的。AFAIK,没有“转到 X 行”功能;您将不得不保存有关每行的一些信息(例如,它的起始位置),使用fseekfsetpos来移动。

于 2010-09-20T13:30:53.040 回答
1

您也许可以fseek()与朋友一起解决您的问题(http://linux.die.net/man/3/fseek)。

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

如果你的记忆力不是太紧,我会保存前几行的信息。

更好的是,如果可能的话,检查你的算法/数据结构,这样你就不需要回去了。

于 2010-09-20T13:35:15.930 回答