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

한 텍스트 파일의 내용을 다른 텍스트 파일에 추가하는 C++ 프로그램

이 글에서는 한 텍스트 파일의 내용을 다른 텍스트 파일 끝에 추가(append)하는 C++ 프로그램을 소개합니다. C++에서는 <fstream> 헤더가 제공하는 파일 스트림 클래스를 활용하면 파일 입출력 작업을 간단하고 효율적으로 처리할 수 있습니다.

입력 예시

a.txt 파일의 내용: "Tutorials"
a1.txt 파일의 내용: "point"

출력 결과

Tutorialspoint

알고리즘

프로그램의 전체적인 동작 흐름은 다음과 같습니다.

  1. fstream 클래스 객체를 정의합니다.
  2. 입력 파일 스트림 객체 fin으로 원본 파일 a.txt를 엽니다.
  3. 출력 파일 스트림 객체 fout으로 대상 파일 a1.txt를 append 모드(ios::app)로 엽니다.
  4. 파일이 존재하지 않으면 "파일을 찾을 수 없습니다"라는 메시지를 출력합니다.
  5. 파일이 정상적으로 열린 경우, fin의 내용을 fout에 이어서 기록합니다.
  6. 대상 파일을 읽기 모드로 다시 연 뒤, 저장된 내용을 화면에 출력합니다.

예제 코드

#include <bits/stdc++.h>
#include <fstream>
using namespace std;

int main() {
    fstream f;
    ifstream fin;
    fin.open("a.txt");
    ofstream fout;
    fout.open("a1.txt", ios::app);

    if (!fin.is_open()) {
        cout << "파일을 찾을 수 없습니다";
    } else {
        fout << fin.rdbuf();
    }

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

코드 설명

  • 입력 스트림 준비: ifstream 객체 fin으로 원본 파일 a.txt를 읽기 모드로 엽니다.
  • append 모드로 열기: ofstream 객체 foutios::app 플래그와 함께 열면 기존 내용을 지우지 않고 파일 끝에 새 데이터를 덧붙일 수 있습니다.
  • 파일 열기 확인: fin.is_open()으로 파일이 제대로 열렸는지 검사하고, 실패한 경우 오류 메시지를 출력합니다.
  • 내용 복사: fout << fin.rdbuf(); 구문은 스트림 버퍼 전체를 한 번에 복사하므로 반복문 없이도 파일 내용을 빠르고 간결하게 추가할 수 있습니다.
  • 결과 확인: 마지막으로 대상 파일 a1.txt를 읽기 모드로 열어 단어 단위로 내용을 출력합니다.

실행 결과

a.txt의 "Tutorials"가 a1.txt의 "point" 뒤에 추가되어 최종적으로 다음과 같은 결과가 출력됩니다.

Tutorialspoint