ifstream 은 inputFileStream 의 줄임말로 읽어올 파일을 가리킬 때 사용한다. ofstream 은 outputFileStream 의 줄임말로 읽어올 파일을 가리킬 때 사용한다.
파일을 읽어올 때는 ifstream 클래스를, 파일에 내용을 출력할 때는 ofstream 클래스의 멤버 함수로 처리한다.
#include <iostream>
#include <fstream>
int main(void)
{
1. std::ifstream ifs("numbers");
unsigned int dst;
unsigned int dst2;
2. ifs >> dst >> dst2;
3. if (!ifs.is_open())
{
std::cout << "파일을 열 수가 없습니다!" << std::endl;
exit(1);
}
4. std::cout << dst << dst2 << std::endl;
std::cout << "-------------------" << std::endl;
5. std::ofstream ofs("test.out");
6. ofs << "i like ponies a whole damn lot" << std::endl;
ofs.close();
}
1 번에서 ifstream 클래스를 이용해서 ifs 객체를 만들었고, 바로 객체 메서드를 실행했다.
이때 std::ifstream ifs(”numbers”)는 코드 실행 과정에 open 함수를 실행하기 때문에, 같은 디렉토리의 nubmers 라는 파일의 fd를 연결한다.
2 번에서는 dst 와 dst2 변수에 numbers 파일의 내용을 출력한다. 만약 해당 파일이 없다면, 3 번 조건문에 걸려서 파일을 열 수가 없습니다! 라는 문구가 출력된다.

2번은 화이트스페이스를 기준으로 변수에 넣고, 4번에서 dst 와 dst2 를 출력한다.
예시!
13 4 5 6 를 넣으면, 134 출력

134 55 6 를 넣으면, 13455

5 번 std::ofstream ofs("test.out") 을 통해 test.out 파일을 출력 스트림에 연결한다.
그 후 6 번을 통해 test.out 에 문자열을 출력한다. ofs << "i like ponies a whole damn lot" << std::endl
test.out 파일이 없으면 파일을 만들어서 문자열을 넣고, 있으면 기존에 있던 문자열을 지우고 넣는다.
전체 과정은 다음과 같다.

1 번을 보면 파일이 cpp 파일과 numbers 파일만 있다.
컴파일 후 2 번을 보면, ifstream 으로 파일의 값을 입력받은 변수들이 출력된다.
3 번을 보면 실행 후 test.out 파일이 생성된 것을 확인할 수 있다.
그 후 4 번의 내용을 cat 으로 출력하면 ofstream 으로 파일에 출력한 값을 확인할 수 있다.