살아가는 이야기

C++ 코드 포팅: strstream과 stringstream 본문

컴퓨터, 풀어그림

C++ 코드 포팅: strstream과 stringstream

우균 2012. 12. 3. 03:49

예전 C++ 프로그램을 포팅하다 보면 strstream이 deprecated(더 이상 지원하지 않는) 기능이라고 나오는 경우가 있다. 실제로 C++ 라이브러리 이름에서 .h가 빠지면서 strstream은 stringstream으로 바뀌었다. 헤더파일 이름도 <strstream.h>에서 <sstream>으로 더 간단해졌다. 그럼 왜 이렇게 바뀐 것일까?

예전의 strstream은 C 스타일의 문자열인 char *를 사용하는 버전이었다. 그런데 stringstream으로 바뀌면서 string 타입으로 새로 구현되었다. string은 클래스 타입이므로 더 안전하다고 할 수 있다. 따라서 지금부터라도 strstream 대신에 stringstream을 사용하는 것이 좋다. 포팅할 때 이런 문제가 나온다면 '그냥 strstream을 stringstream으로 바꾸면 된다'. 이전 코드가 C++ 스타일대로 작성되었다면 아무 무리 없이 바뀔 것이다.

Comments