프로그램이 외부 파일에서 데이터를 읽고, 파일에 데이터를 쓰는 데에 사용된다.
<fstream>
헤더를 사용ifstream
: 파일에서 데이터를 읽을 때 사용.ofstream
: 파일에 데이터를 쓸 때 사용.fstream
: 파일에서 읽고 쓰는 기능을 모두 사용할 때 사용.#include <iostream>
#include <string>
#include <fstream> // 파일 입출력을 위한 헤더 파일
int main() {
std::ofstream outFile("example.txt"); // 파일을 열거나 생성
if (outFile.is_open()) { // 파일이 정상적으로 열렸는지 확인
outFile << "Hello, World!" << std::endl; // 파일에 데이터 쓰기
outFile << "This is C++ file handling." << std::endl;
outFile.close(); // 파일을 닫음
} else {
std::cout << "Unable to open file for writing" << std::endl;
}
return 0;
}
outFile("example.txt")
: 파일이 없으면 생성되고, 파일이 있으면 덮어쓰기가 .outFile << ...
: 파일에 데이터를 기록하는 방식은 std::cout
과 유사하게 작동해.outFile.close()
: 파일을 열었으면, 작업이 끝난 후 반드시 닫아줘야 해.#include <iostream>
#include <fstream>
int main() {
std::ifstream inFile("example.txt"); // 파일을 열어 읽기 모드로
if (inFile.is_open()) {
std::string line;
while (std::getline(inFile, line)) { // 파일의 각 줄을 읽음
std::cout << line << std::endl; // 읽은 내용을 출력
}
inFile.close(); // 파일을 닫음
} else {
std::cout << "Unable to open file for reading" << std::endl;
}
return 0;
}
std::getline
: 파일의 내용을 한 줄씩 읽어들이는 함수.inFile.close()
: 파일 읽기가 끝나면 파일을 닫아야 함.#include <iostream>
#include <fstream>
int main() {
std::fstream file("example.txt", std::ios::in | std::ios::out);
if (file.is_open()) {
file << "Writing some new data." << std::endl; // 파일에 쓰기
file.seekg(0); // 파일 포인터를 다시 처음으로 이동
std::string line;
while (std::getline(file, line)) {
std::cout << line << std::endl; // 파일에서 읽기
}
file.close(); // 파일 닫기
} else {
std::cout << "Unable to open file" << std::endl;
}
return 0;
}
std::ios::in | std::ios::out
: 읽기와 쓰기를 동시에 하기 위한 모드.seekg(0)
: 파일 포인터를 처음으로 돌려서 파일을 다시 읽기 시작.student.txt
파일을 생성하고, 학생의 이름과 나이를 저장하는 프로그램을 작성해보자.student.txt
파일을 읽어서 파일의 내용을 출력하는 프로그램을 만들어보자.