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

C++로 텍스트 파일을 읽는 방법 – fstream 활용 가이드

이 글에서는 C++를 사용하여 텍스트 파일을 읽는 방법을 알아봅니다. fstream 클래스를 활용하면 파일에 데이터를 쓰고, 저장된 내용을 다시 읽어올 수 있습니다.

입력

tpoint.txt 파일의 초기 내용은 다음과 같습니다.
“Tutorials point.”

출력

Tutorials point.

알고리즘

텍스트 파일을 읽는 전체 과정은 다음 단계로 진행됩니다.

  1. 파일 스트림 객체 생성 – fstream 클래스의 객체 newfile을 생성합니다.
  2. 쓰기 모드로 파일 열기 – open() 메서드를 호출하여 “tpoint.txt” 파일을 쓰기(ios::out) 모드로 엽니다.
  3. 데이터 쓰기 – 파일이 정상적으로 열렸다면 문자열 “Tutorials point”를 파일에 기록한 뒤, close() 메서드로 파일 객체를 닫습니다.
  4. 읽기 모드로 파일 열기 – 같은 파일을 다시 읽기(ios::in) 모드로 엽니다.
  5. 데이터 읽기 – 파일이 열려 있다면 문자열 변수 tp를 선언하고, getline() 메서드를 사용해 파일의 모든 데이터를 한 줄씩 읽어 tp에 저장합니다.
  6. 결과 출력 – 문자열 tp에 담긴 내용을 화면에 출력합니다.
  7. 파일 닫기 – 마지막으로 close() 메서드를 호출해 파일 객체를 닫고 프로그램을 종료합니다.

예제 코드

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
    fstream newfile;
    newfile.open("tpoint.txt",ios::out);  // 파일 객체를 사용해 쓰기 작업을 위해 파일 열기
    if(newfile.is_open()) // 파일이 열려 있는지 확인
    {
        newfile<<"Tutorials point \n"; // 텍스트 삽입
        newfile.close(); // 파일 객체 닫기
    }
    newfile.open("tpoint.txt",ios::in); // 파일 객체를 사용해 읽기 작업을 위해 파일 열기
    if (newfile.is_open()){ // 파일이 열려 있는지 확인
        string tp;
        while(getline(newfile, tp)){ // 파일 객체에서 데이터를 읽어 문자열에 저장
            cout << tp << "\n"; // 문자열의 데이터 출력
        }
        newfile.close(); // 파일 객체 닫기
    }
}

실행 결과

Tutorials point

핵심 포인트 정리

  • fstream은 하나의 객체로 읽기와 쓰기를 모두 처리할 수 있는 범용 파일 스트림 클래스입니다.
  • open() 호출 시 ios::out은 쓰기 모드, ios::in은 읽기 모드를 의미합니다.
  • is_open()으로 파일이 제대로 열렸는지 반드시 확인하는 것이 안전한 파일 처리의 기본입니다.
  • getline()은 파일 끝(EOF)에 도달할 때까지 한 줄씩 데이터를 읽어오므로, while 루프와 함께 사용하면 파일 전체 내용을 손쉽게 출력할 수 있습니다.