프로그래밍/c++

iostream cerr, clog의 사용

제페 2016. 4. 5. 20:32
반응형

cerr와 clog는 기본적으로, 콘솔로 출력해 이게 cout이랑 뭐가 다른 거야?! 라고 하겠지만

스트림버퍼 설정으로 손 쉽게 에러와, 로그를 구분해 출력할 수 있도록 한다.


1
2
3
4
std::ofstream outfile("err.txt");
 
// set output stream
std::cerr.rdbuf(outfile);
cs


이렇게 rdbuf를 재설정 하면, cerr로 출력한 문자들은 모두 outfile에 쓰여지게 된다!


1
2
3
 
std::cerr << "error!!";
 
cs


보면 알다시피, cout, cerr, clog는 사용법이 모두 같다. 

그럼 왜 구분을 해놨을까? 단순히 언어 차원에서 이건 이건 출력, 이건 에러야, 이건 로그 같이 구분하기 위함이다.

저러한 구분이 없다면 out, err, log 별 구분 처리를 위해 사용자가 직접 작성을 해야할 것이다.


참고 

http://gpgstudy.com/forum/viewtopic.php?p=114620

https://algospot.com/forum/read/2496/

반응형