Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 텍스트 파일에 내용을 추가하는 방법 (append 모드 활용)

C++ 프로그래밍에서는 ofstreamios::app 모드를 사용하면 기존 파일의 내용을 지우지 않고 그 뒤에 새로운 텍스트를 손쉽게 추가할 수 있습니다. 이번 글에서는 "a1.txt"라는 텍스트 파일에 문자열을 추가하는 예제 프로그램을 살펴보겠습니다.

알고리즘

  1. fout 파일 스트림 객체로 a1.txt 파일을 append 모드(ios::app)로 열어 출력 작업을 준비합니다.
  2. 파일이 존재하면 해당 파일에 텍스트를 추가합니다.
  3. fout 스트림을 닫습니다.
  4. a1.txt 파일을 다시 열어 파일의 내용을 읽습니다.
  5. 파일에서 텍스트를 추출하여 화면에 출력합니다.

예제 코드

#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main() {
    fstream f;
    ofstream fout;
    ifstream fin;

    fin.open("a1.txt");
    fout.open("a1.txt", ios::app);

    if(fin.is_open())
        fout << " tutorials point";

    cout << "\n Data has been appended to file" << endl;

    fin.close();
    fout.close();

    string word;
    f.open("a1.txt");
    while (f >> word) {
        cout << word << " ";
    }
    return 0;
}

코드 설명

  • fin.open("a1.txt") : 입력 스트림으로 파일을 열어 파일이 실제로 존재하는지 먼저 확인합니다.
  • fout.open("a1.txt", ios::app) : append 모드로 파일을 열어 기존 내용 뒤에 새 텍스트가 이어지도록 합니다.
  • if(fin.is_open()) : 파일이 정상적으로 열려 있다면 " tutorials point"라는 문자열을 파일 끝에 추가합니다.
  • 작업이 끝나면 fin과 fout을 모두 닫고, fstream 객체 f로 파일을 다시 열어 단어 단위로 내용을 읽어 화면에 출력합니다.

실행 결과

Data has been appended to file

프로그램을 실행하면 a1.txt 파일의 기존 내용 뒤에 "tutorials point"라는 문자열이 추가되며, 마지막에는 파일의 전체 내용이 공백으로 구분되어 화면에 출력됩니다. 이처럼 ios::app 플래그를 사용하면 파일을 덮어쓰지 않고 안전하게 내용을 이어 쓸 수 있습니다.