ostream에 접두사를 추가하는 방법을 찾고 다른 기능에 전달하여 출력에 접두어를 붙인 다음 계속하려면 제거하십시오.ostream 출력에 접두사 추가
확인 다음 의사 :
...
Whatever
function: output 1
function: output 2
...
들이 그 보초가/접미을 접두어로 사용할 수 있습니다 상태 ostream에의 문서를 보면하지만 난 안 : 같은 출력으로
...
void function(ostream &out){
out << "output 1\n";
out << "output 2\n";
}
cout << "Whatever\n";
add_suffix(cout,"function: ");
function(cout);
remove_suffix(cout);
...
의도 한 용도가 내가 원한 것이라면이 작업을 수행하는 방법을 알아야합니다.
ostream::sentry
문서는 말한다 : 여기에 기록 된 모든 줄 바꿈 후 접두사를 삽입하는 streambuf
이며, 대상 버퍼에 출력을 보내는 YourStreamBuffer
을 정의
sentry: Perform exception safe prefix/suffix operations
streambufs 그리고 그건 내 독창적 인 아이디어였습니다. 그런 일을하지 않으면 왜 보초가 문서화되어 있는지 궁금합니다. –
@Arkaitz : 언급 된 "prefix"에는 스트림을 읽거나 쓰는 함수 접두사가 있습니다. 이것들은 스트림의 상태를 체크하고 스트림이 나쁜 상태에있을 때 예외를 던지기위한 것이다. – ybungalobill
멋지다. 이제는 스트림 컨텍스트의 접두어와 접미어 연산이 원했던 것처럼 너무 많이 보였습니다. 그렇다면 streambuf 구현에 묶여있는 것 같습니다. –