繁体   English   中英

使用for循环在同一文本文件中读取和写入

[英]Reading and writing in the same text file using a for loop

是否可以使用一个for循环在文本文件中读取和写入? 我想打印出符号. 在零pos和文本中每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.

你不能这样做 - 当你写一个字符时,文件中的数据不会“移位”,它会被写入。

解决这个问题的常用方法如下:

  • 打开一个临时文件进行写作。 给它写一个点
  • 打开源文件进行读取。 一次读取八个字符
  • 每次从源文件中读取8个字符时,将它们写入临时文件; 加点
  • 读取完成后,关闭两个文件; 移动临时文件代替原件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM