std::fstream有没有办法控制光标点?

Is there a way to control Cursor Point in std::fstream?

我正在从 .txt 文件中读取大数据,例如 1000-5000 人的数据。他们用算法保存在一个文件中,我可以很容易地读回数据。但是为了更简单,我正在寻找控制文件光标点的方法。

例如,在 console app 中,您可以使用 VT100 转义序列,例如 3[3A(3 行)3[2D(左 2 个字母)37(保存位置)

那么有没有办法这样控制光标点呢?

std::fstream 可以看成一个单字节的线性流。因此,无法使用像“光标向上”这样的东西,因为 std::fstream 不知道文件中的行。

您可以做的是询问您当前正在阅读的当前位置tellgor writing with tellp

保留这些位置后,您可以返回seekg or seekp

如果您愿意,可以在读取文件时存储当前行位置,稍后使用该存储位置进行导航。或者,如果您以随机方式修改文件并且文件不是那么大,您可以将其完全读入您选择的数据结构,在内部修改数据并稍后写回。