stringstream을 fstream으로 내보낼 때,

fstream file;
stringstream ss;

file << ss; // 스트림 자체를 덤프할 뿐 스트림 안의 내용이 기록되지 않는다.
file << ss.rdbuf(); // 스트림 안의 버퍼를 덤프한다. 파일에 내용이 제대로 작성된다.

stringstream으로 입력받을 때도 마찬가지. 흔히 내장 타입에 받듯 >>연산자를 사용하지 않고 raw buffer를 그대로 stringstream에 “출력“한다.

fstream file;
stringstream ss;

ss << file.rdbuf(); //보기엔 별로 좋지 않아도 최선의 효율적인 방식.