파일 입출력은 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>
헤더를 이용하여 파일을 열고 닫고, 데이터를 읽거나 쓸 수 있습니다. 파일 입출력을 사용할 때는 파일의 존재 여부나 에러 처리를 잘 고려해야 합니다.