C++ std::fstream 如何移动到文件的某行某列

C++ std::fstream how to move to a certain line and column of a file

所以我一直在寻找如何移动到文件中的特定行和列,但我似乎找不到答案。我想要这样的东西:

std::fstream file("example.txt");
file.move_to( line number , column number );

下面的函数可以为所欲为:

std::string GetLine(std::istream& fs, long long index)
{
    std::string line;
    for (size_t i = 0; i <= index; i++)
    {
        std::getline(fs, line);
    }
    return line;
}

以上函数获取位于 index 的行(index == 0 - 第 1 行,index == 2 - 第 3 行,等等)。

用法:

#include <iostream>
#include <string>
#include <fstream>

std::string GetLine(std::istream& fs, long long index)
{
    std::string line;
    for (size_t i = 0; i <= index; i++)
    {
        std::getline(fs, line);
    }
    return line;
}

int main()
{
    std::ifstream fs("input.txt"); // fstream works too
    std::cout << GetLine(fs, 1);
}

input.txt

This is
a
test file

输出:

a