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