c++ - 如何使用 C++ 编辑文本文件

标签 c++ text-files fstream

如何在 C++ 中编辑文本文件的特定行?假设我想打开一个文件并将焦点或指针或其调用的任何内容更改为第 17 行第 20 列。这样我就可以在第 17 行第 20 列之后编辑文本。

我试过了,但是没用。

ofstream txtFile("textFile.txt");
fseek(txtFile, 17, 20);
txtFile << "New stuff to enter at this point (overwrites old not insert)";

我该怎么做?

最佳答案

fseek 不是在寻找计数行,而是在寻找字节。您指示程序的不是将指针定位在第 17 行的第 20 列,而是定位在文件的第 17 + 20 = 37 个字节。

该函数的第一个参数是原点,即从您计算的原点开始的字节数,第二个参数是您还偏移了多少。

参见 reference fseek 的。

我不知道有任何库可以在 C++ 中对行和列进行字节定位。您可能需要使用更高级别的函数并逐行解析(例如,如果您寻求 C++ 解决方案,则使用 getline)。

关于c++ - 如何使用 C++ 编辑文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219013/

相关文章:

java - 为什么我从类里面获取的值(value)观会被结合在一起?

c++ - C++ 中的 is_open() 函数始终返回 0 值,而 getLine(myFile, line) 不返回任何内容

C++ 使用 lz4 压缩,压缩信息不符合预期

c++ - C++ 结构体中的指针

c++ - Boost::Archive 导致奇怪的链接器错误

c++ - 分发 Visual C++ 运行时库 (MSVCRT)

c++ - 使用模板调试 C++ 代码,使用 gdb 调试 STL

c++ - 如果 C++ 中不存在文件夹,如何创建文件夹?

python - 如何从txt文件中删除特定行及其后面的n行?

c++ - Libcurl:使用 fstream::write 而不是 fwrite 时图像损坏