2013-10-30 2 views
1

나는 압축/압축 해제 모듈을 만들고 압축을 위해 istringstream을 사용하고 압축 해제를 위해 ostringstream을 사용하려고한다.ostringstream에서 istringstream으로 넘어가는 트릭

제 문제는 압축 스트림으로 istringstream을 채운 후에이 스트림을 ostringstream으로 변환 할 수 없다는 것입니다. 나는 시도한다 :

iss.rdbuf (oss.rdbuf());

in 및 out 유형이 일치하지만 작동하지 않습니다.

의견이 있으십니까?

감사합니다.

+0

ostringstream 및 istringstream 대신 stringstream을 사용하는 것이 좋습니다. http://www.cplusplus.com/reference/sstream/basic_stringstream/ – AndyG

+0

이것은'iss '에 대한 입력 작업이'oss' 버퍼에 영향을 미치기 때문에 매우 위험합니다. 'oss'를 반영하는'iss'에서 어떤 변화도 발견되지 않을 것입니다. 이것은 단순히 잠재적 인 함정 중 하나입니다. – 0x499602D2

답변

0

stringstream::rdbuf에는 매개 변수를 사용하는 오버로드가 없습니다. 그것은, 그러나,이 속성을 가지고 않습니다 기본 클래스 버전을 상속 않습니다

iss.basic_ios<char>::rdbuf(oss.rdbuf()); 

파생 된 클래스 버전을 숨 깁니다 때문에 처음에 사용할 수 없다는 사실입니다.