더북(TheBook)

이 간단한 예제를 통해 파일 입출력을 사용하면 강력한 애플리케이션을 작성할 수 있다는 사실을 알 수 있다.

예외를 사용하려면 런타임 중에 각 스트림에 대해 예외를 활성화해야 한다.

cin.exceptions(ios_base::badbit | iosbase::fallbit);
cout.exceptions(ios_base::badbit | iosbase.fallbit);
std::ifstream infile("f.txt");
infile.exceptions(ios_base::badbit | ios_base::fallbit);

스트림은 작업이 실패하거나 "잘못된" 상태일 때마다 예외를 던진다. 예외는 (예기치 않은) 파일 끝에서도 발생할 수 있다. 그러나 파일의 끝은 검사 코드(예를 들어 while (!f.eof())를 통해 보다 편리하게 처리할 수 있다.

위의 예에서 파일에 대한 예외는 파일을 열거나 시도한 후에만 사용할 수 있다. 여는 작업을 확인하려면 먼저 스트림을 만든 다음 예외를 설정하고 그 후에 파일을 명시적으로 열어야 한다. 예외를 활성화하면 프로그램을 올바르게 종료할 때 모든 I/O 작업이 잘 수행되었다고 보장할 수 있다. 발생할 수 있는 예외를 포착해 프로그램을 더욱 강력하게 만들 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.