从C ++中的特定位置读取一行文本文件

时间:2016-12-06 20:56:18

标签: c++ arrays multidimensional-array text fstream

我想以下列方式阅读C ++中的文本文件:

  1. 忽略整个第一行,因为它只是作为介绍。
  2. 只读取特定位置的以下行。
  3. 阅读的起始位置是固定的,并且每行都保持不变;但是,之后的数字可能是可变长度的。我需要将第2行到第n行的所有这些数字保存到数组中。 目前,我可以使用getline读取常规2D数组。 我该如何解决这些问题?

    我想要阅读的一行示例可能是:

    Person1:25 988.3 0.0023 7

2 个答案:

答案 0 :(得分:0)

要将文件设置为某个位置,请使用std::ifstream::seekg()

要将文件设置为行的开头,您必须读取并计算行结尾。许多文本文件具有可变长度的文本行。

答案 1 :(得分:0)

  

我如何解决这些问题?

除非您能确保第一行之后的所有数据行都具有相同的长度,否则不能这样做。

如果你不能确保这一点,那么你所能做的只是读完所有前面的行。

我过去使用的另一种方法是生成一个'索引'以二进制格式在辅助文件中的行开始位置(以便我可以直接跳转到该文件中的正确位置),并使用它跳转到文本文件中的正确位置。当然,这意味着每次更换/修改数据文件时都需要重新生成该索引文件。