티스토리 뷰

디버깅을 위해서 cout을 썼다가 나중에 cout을 모두 지우거나 주석처리해야하는 불편함이 있는데 이것을 해소하는 방법.
결론 부터 말하면 가장 추천 방법은 clog를 쓰고, clog를 비활성화(?) 시키는 방법을 쓴다.

 

<cout이 아닌 다른것 쓰기>

 

1.printf()쓰기.

형식이 바뀌어서 매우 귀찮다.

 

2. cout을 다른 이름으로 바꿔쓰기

다른이름으로 바꿔서 썼다가, 나중에 얘네들만 한꺼번에 검색해서 주석처리하거나 없애는 식으로 할수있다.

(2-1)#define dout cout

(2-2)ostream &dout = cout;

두가지 모두 cout을 다른 이름으로 바꾸어 쓸수 있게 해주는 방법이다.

 

dout << “#case:" << i << endl;

 

 

3. clog 사용하기

clog << “case“ << i ;

 

 

<활성화 & 비활성화>

1. /\*\*/을 앞에 붙였다가 나중에 //로 바꾸기

 

전 /\*\*/ dout << “copy”;

후 //dout << "copy”;

 

기능에 따라 활성화 상태를 구분하는 단어를 쓸수도 있다.

/**/ 대신에 /*debug*/  /*log*/  처럼 구분하는 단어를 써서 기능이 다른 것들을 구분하거나

그냥 /**/보다 검색에 더 확실하게 걸리게 할수도 있다.

 

 

2. clog를 비활성화 (★)

 

clog 구문이 출력되지 않게 할수 있다. 아래와 같이 쓰면된다.

 

std::clog.setState (std::ios\_base::failbit);

 

 

using namespace std; 를 쓴다면,  std::는 생략하고 아래처럼 쓰면 더 간단하다.

 

 

clog.setState (ios\_base::failbit);

 

 

반응형
댓글