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

C++ 클래스를 활용한 파일 처리 완벽 가이드: ifstream과 ofstream 사용법

이 튜토리얼에서는 C++ 클래스를 활용하여 파일 처리(File Handling)를 구현하는 방법을 알아봅니다.

C++ 파일 처리의 기본 개념

파일 입출력은 프로그램이 데이터를 영구적으로 저장하거나 외부 파일에서 데이터를 불러올 때 반드시 필요한 기능입니다. C++에서는 ifstream(입력 파일 스트림)과 ofstream(출력 파일 스트림)과 같은 스트림 클래스를 통해 파일을 손쉽게 다룰 수 있으며, 파일과 상호작용하는 데 사용되는 기본 함수들은 사용자가 직접 클래스를 정의하여 재구성하거나 확장할 수도 있습니다.

아래 예제에서는 ofstream으로 파일에 데이터를 쓰고, ifstream으로 해당 파일을 다시 읽어 화면에 출력하는 과정을 보여줍니다.

예제 코드

#include <iostream>
#include <fstream>
using namespace std;

int main(){
    // ofstream 객체 생성
    ofstream fout;
    string line;

    // sample.txt 파일 열기
    fout.open("sample.txt");

    // 파일이 정상적으로 열려 있는 동안 반복
    while (fout) {
        getline(cin, line);
        if (line == "-1")
            break;
        fout << line << endl;
    }
    fout.close();

    // ifstream 객체로 파일 열기
    ifstream fin;
    fin.open("sample.txt");

    // 파일 끝까지 한 줄씩 읽어 출력
    while (fin) {
        getline(fin, line);
        cout << line << endl;
    }
    fin.close();

    return 0;
}

코드 동작 설명

  1. 파일에 데이터 쓰기: ofstream 객체 fout을 생성하고 open() 함수로 sample.txt 파일을 엽니다.
  2. 사용자 입력 저장: getline()으로 사용자 입력을 한 줄씩 받아 파일에 기록합니다. 입력값이 -1이면 반복문을 종료합니다.
  3. 파일 닫기: close()를 호출해 파일 스트림을 안전하게 닫고 리소스를 해제합니다.
  4. 파일 읽기: ifstream 객체 fin으로 같은 파일을 연 뒤, 파일이 유효한 동안 한 줄씩 읽어 콘솔에 출력합니다.

마무리

이처럼 C++의 스트림 클래스를 사용하면 복잡한 저수준 파일 API 없이도 직관적인 문법으로 파일 입출력을 처리할 수 있습니다. 실제 프로젝트에서는 파일이 제대로 열렸는지 확인하기 위해 is_open() 검사나 예외 처리를 함께 사용하는 것이 좋습니다.