C++ STD IO


파일 입출력은 C++ 프로그래밍에서 중요한 부분 중 하나입니다. 특히 파일 입출력을 통해 데이터를 읽고 쓰는 기능은 매우 유용하게 사용됩니다. 이번에는 C++에서 파일 입출력에 관련된 기본적인 개념과 예제 코드를 소개하겠습니다.

파일 스트림(File Streams)

C++에서 파일 입출력은 <fstream> 헤더 파일을 사용하여 처리됩니다. <fstream> 헤더 파일은 파일 입출력을 위한 다음 세 가지 클래스를 제공합니다:

  • ifstream: 파일에서 데이터를 읽기 위한 입력 스트림 클래스입니다.
  • ofstream: 파일에 데이터를 쓰기 위한 출력 스트림 클래스입니다.
  • fstream: 파일에서 데이터를 읽거나 파일에 데이터를 쓰기 위한 입출력 스트림 클래스입니다.

기본적인 파일 읽기(Reading from a File)

파일에서 데이터를 읽어오는 예제입니다. 파일이 존재하지 않으면 새로 생성되지 않습니다.

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // 입력 파일 스트림 객체 생성
    std::ifstream infile("input.txt");

    // 파일 열기 성공 여부 확인
    if (!infile) {
        std::cerr << "파일을 열 수 없습니다." << std::endl;
        return 1;
    }

    // 파일에서 한 줄씩 읽어오기
    std::string line;
    while (std::getline(infile, line)) {
        std::cout << line << std::endl;
    }

    // 파일 스트림 닫기
    infile.close();

    return 0;
}

기본적인 파일 쓰기(Writing to a File)

파일에 데이터를 쓰는 예제입니다.

#include <iostream>
#include <fstream>

int main() {
    // 출력 파일 스트림 객체 생성
    std::ofstream outfile("output.txt");

    // 파일 열기 성공 여부 확인
    if (!outfile) {
        std::cerr << "파일을 열 수 없습니다." << std::endl;
        return 1;
    }

    // 파일에 데이터 쓰기
    outfile << "Hello, World!" << std::endl;
    outfile << "This is a sample output." << std::endl;

    // 파일 스트림 닫기
    outfile.close();

    return 0;
}

바이너리 파일 처리(Binary File Handling)

파일을 바이너리 형식으로 읽고 쓰는 예제입니다.

바이너리 파일 읽기(Reading Binary File)

#include <iostream>
#include <fstream>

int main() {
    // 입력 바이너리 파일 스트림 객체 생성
    std::ifstream infile("data.bin", std::ios::binary);

    // 파일 열기 성공 여부 확인
    if (!infile) {
        std::cerr << "바이너리 파일을 열 수 없습니다." << std::endl;
        return 1;
    }

    // 파일에서 데이터 읽기
    char buffer[100]; // 읽을 데이터를 저장할 버퍼
    infile.read(buffer, sizeof(buffer));

    // 읽은 데이터 출력
    std::cout << "바이너리 데이터: ";
    for (int i = 0; i < infile.gcount(); ++i) {
        std::cout << buffer[i];
    }
    std::cout << std::endl;

    // 파일 스트림 닫기
    infile.close();

    return 0;
}

바이너리 파일 쓰기(Writing Binary File)

#include <iostream>
#include <fstream>

int main() {
    // 출력 바이너리 파일 스트림 객체 생성
    std::ofstream outfile("data.bin", std::ios::binary);

    // 파일 열기 성공 여부 확인
    if (!outfile) {
        std::cerr << "바이너리 파일을 열 수 없습니다." << std::endl;
        return 1;
    }

    // 쓸 데이터 준비
    char data[] = "Hello, Binary World!";

    // 파일에 데이터 쓰기
    outfile.write(data, sizeof(data));

    // 파일 스트림 닫기
    outfile.close();

    return 0;
}

위의 예제들은 C++에서 파일 입출력을 처리하는 기본적인 방법을 보여줍니다. <fstream> 헤더를 이용하여 파일을 열고 닫고, 데이터를 읽거나 쓸 수 있습니다. 파일 입출력을 사용할 때는 파일의 존재 여부나 에러 처리를 잘 고려해야 합니다.


Leave a Reply

Your email address will not be published. Required fields are marked *