【发布时间】:2016-12-30 15:47:57
【问题描述】:
我想用 C++ 从文件中读取一行(但不是第一行)。 有没有聪明的方法来做到这一点?现在我正在考虑使用 getline() 并在循环中继续,但这似乎不是最优化的方式?有任何想法吗? 问候
【问题讨论】:
-
你可以使用 fseek(),你可以从这里获得帮助cplusplus.com/reference/cstdio/fseek
-
如果行是可变长度的,那么没有其他方法可以读取行,直到你到达你想要的行。如果它们的长度是固定的,那么你可以寻找
linenumber * linelength,考虑到linelength必须包含换行符。 -
抱歉,您必须边走边收线。没有系统级的方法可以一次扫描一行。如果必要且可行,您可以为文件编写索引,将已知换行符的位置记录为字节位置。当然,如果不知道您真正想要做什么,我们就无法给出正确的答案。