2014-04-09 2 views
3

루프를 사용하여 텍스트 파일을 읽고 쓸 수 있습니까? 나는 문자 0에서 pos와 문자 8 자마다 기호 .을 인쇄하려고합니다. 여기 내 코드는하지만, 그것은 작동하지 않습니다for 루프를 사용하여 동일한 텍스트 파일에서 읽고 쓰는 중

내 텍스트 파일에
#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은 다음과 같습니다

.ABCDEFGH.IJKLMNOP. 

답변

4

당신처럼 할 수 없습니다 :

ABCDEFGHIJKLMNOP 

내가이되고 싶어 즉, 파일의 데이터가 문자를 쓸 때 "이동"하지 않으면 덮어 쓰게됩니다.

다음과 같이 될 것이다이를 해결하기위한 일반적인 방법 :

  • 열기 쓰기를위한 임시 파일. 점을 써 넣으십시오.
  • 읽을 파일을 엽니 다. 한 번에 8 자씩 읽으십시오.
  • 소스 파일에서 8자를 읽을 때마다 임시 파일에 기록하십시오. 점을 추가하십시오.
  • 일단 판독이 완료되면 두 파일을 모두 닫으십시오. 원래 파일 대신 임시 파일을 이동하십시오.
관련 문제