cout
또는 cerr
으로 경고 메시지를 인쇄하는 라이브러리를 사용하고 있습니다. 이 경고 메시지가 내 프로그램의 출력에 도달하기를 원하지 않습니다. 이 출력을 어떻게 받아 들여 /dev/null
또는 그 유사 물에 넣을 수 있습니까?함수 출력을/dev/null로 리디렉션
MWE : 출력은해야
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
:
Interesting message.
어떻게 내가 원하는 출력을 얻을 수 main
을 수정해야합니까? (foo
이 변경되지 않아야합니다.)
나는이 질문 How can I redirect stdout to some visible display in a Windows Application?에 제안 freopen()
및 fclose(stdout)
를 사용했습니다. 그 결과 아무 것도 인쇄되지 않습니다.
이 작품을 사용해 주셔서 감사합니다. 그러나 다른 답변을 허용 된 답변으로 표시하기로했습니다. – Unapiedra
감사합니다. @Unapiedra. 매너가 항상 높이 평가되었습니다 :) – wreckgar23
'rdstate'를 통해 현재 상태를 저장하고 나중에 다시 설정하는 것이 좋습니다. 스트림의 상태를 지우는 것보다 약간 안전합니다. – SirGuy