我想以下列方式阅读C ++中的文本文件:
阅读的起始位置是固定的,并且每行都保持不变;但是,之后的数字可能是可变长度的。我需要将第2行到第n行的所有这些数字保存到数组中。
目前,我可以使用getline
读取常规2D数组。
我该如何解决这些问题?
我想要阅读的一行示例可能是:
Person1:25 988.3 0.0023 7
答案 0 :(得分:0)
要将文件设置为某个位置,请使用std::ifstream::seekg()
。
要将文件设置为行的开头,您必须读取并计算行结尾。许多文本文件具有可变长度的文本行。
答案 1 :(得分:0)
我如何解决这些问题?
除非您能确保第一行之后的所有数据行都具有相同的长度,否则不能这样做。
如果你不能确保这一点,那么你所能做的只是读完所有前面的行。
我过去使用的另一种方法是生成一个'索引'以二进制格式在辅助文件中的行开始位置(以便我可以直接跳转到该文件中的正确位置),并使用它跳转到文本文件中的正确位置。当然,这意味着每次更换/修改数据文件时都需要重新生成该索引文件。