프로그램을 작성하고 진행 상황을 표시하거나 설정을 해제하여 사용자가 패키지 로깅을 제어 할 수있게하려고합니다.std :: ostream 및 std :: cout을 사용한 C++ 로깅
나는 std::cout
이 std::ostream
이고 그 차이가 std::cout
인 결과가 표준 출력으로 리디렉션된다는 것을 알고 있습니다.
내 수업에 모든 것을 기록하는 std::ostream
회원이 있어야합니다. 그런 다음 사용자가 디스플레이를 활성화하면 그 회원은 std::cout
에 연결되어 결과를 표시합니다. 그렇지 않으면 표시되지 않습니다.
class log {
private:
std::ostream display;
public:
void func();
void show_display();
}
void log::func(){
display << "called by func";
}
void log::show_display(){
// redirect display to standard output
}
이 작업을 수행하는 위의 유사한 방법이 있나요 :
내가 생각하고있는 것은이 비슷한 무엇입니까? 그렇지 않은 경우 어떻게 비슷한 결과를 얻을 수 있습니까?
감사합니다.
"std :: cout이 결과를 화면에 직접 표시한다는 차이점이 있습니다." 아니, 표준 출력에 씁니다. 쉘에서 출력 할 수 있습니다. –
@NeilButterworth 그것은 절대적으로 옳습니다. 실수로 유감입니다. – Everyone
을 편집합니다. 출력을 무시하는 스트림에 사용할 수 있습니다. http://stackoverflow.com/a/11826666/951890 –