c++ |文本文件hardtime(行编辑)
C++ | Text files hardtime (line edit)
我的程序目前遇到了麻烦。我只想修改文本文件中的6行,从第76行到第81行,我不知道怎么做。
我想在这些行的末尾添加一些东西(或者如果更容易的话替换它们),并且不修改任何其他行(可能检查修改是否已经发生,但这是额外的)。
我发现自己在谷歌上找不到答案,你能帮帮我吗?
如果您的替换文本与原始文本相同,确切的长度,您可以以读/写方式打开文件并覆盖文本。
传统的方法(自卷对卷磁带以来)一直是将未修改的文本复制到新文件中,然后是修改后的文本,然后是原始文本的其余部分。
建议使用std::getline
和std::string
。
如果您确实需要性能,您可能需要考虑双缓冲。
编辑1:示例for (unsigned int i = 0; i < 76; ++i)
{
std::string text;
std::getline(original_file, text);
new_file << text << "n";
}
// Write new text to new file
// Read old text and ignore it.
// Copy remaining text to new file.
虽然可以将文件视为随机访问(意味着可以查找到随机位置),但文本的长度不是固定的。一般来说,文本文件可以被认为包含可变长度的文本记录。对行计数的唯一方法是一直读到找到换行符为止。因此,为了找到第76行,必须计算行尾,直到找到第76行。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 编辑文件中的文本
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- SetDlgItemInt 不会更改嵌入资源的编辑框
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- C++,Qt:仅在双击后编辑qtablewidget项目
- 编辑字符串以包含括号 c++ 之间的变量
- Arduino函数无法编辑数组
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- C++MFC编辑框处理双击
- 是否可以使用指针访问变量以避免直接编辑变量?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 在 c++ 中编辑注册表项
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 尝试使用 CMake 和 MinGW64 进行构建时出现多个编辑错误
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- Qt如何将行编辑连接到进度条
- c++ |文本文件hardtime(行编辑)