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 루프와 함께 사용하면 파일 전체 내용을 손쉽게 출력할 수 있습니다.