使用for循环在同一文本文件中读取和写入
Reading and writing in the same text file using a for loop
是否可以使用一个for循环在文本文件中读取和写入?我想在文本的零位置和每8个字符之后打印出符号.
。这是我的代码,但它不起作用:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
fstream file("MNMN.txt", ios::out | ios::in );
string content;
int i;
while(file >> content)
{
for (size_t i = 0; i < content.size(); i+=8)
{
file<<".";
break;
}
}
return 0;
}
我的文本文件中的dDta是:
ABCDEFGHIJKLMNOP
我希望它变成:
.ABCDEFGH.IJKLMNOP.
你不能这样做——当你写一个字符时,文件中的数据不会"移位",它会被重写。
解决这一问题的常见方法如下:
- 打开一个临时文件进行写入。在上面写一个点
- 打开源文件进行读取。一次读八个字
- 每次从源文件中读取八个字符时,将它们写入临时文件;附加一个点
- 读取完成后,关闭两个文件;将临时文件移到原始文件的位置
相关文章:
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取文件的最后一行并输入到链接列表时出错
- 为什么在读取文件大小时文件IO速度会发生变化
- 读取文件时运行时的未知行为
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C++ 读取文件读取文件不正确
- 读取文件并将其存储在unordered_map中时出现问题
- 读取文件时无法使用 OpenMP 获得加速
- 使用istringstearm和get行缓慢读取文件
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 读取文件时引发异常
- 从标准输入读取文件后读取用户输入
- 在读取文件后重置句柄
- 如何在C++编译时读取文件?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 读取文件在第二次调用时返回INVALID_HANDLE
- 通过指针读取文件
- 逐行读取文件,并将数据插入变量和数组中