簡體   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