이 코드는, stringstreams rdbuf()와 str()이 다른 출력을주는 이유는 무엇입니까?
int main()
{
std::string st;
std::stringstream ss;
ss<<"hej hej med dig"<<std::endl;
std::getline(ss,st,' ');
std::cout <<"ss.rdbuf()->str() : " << ss.rdbuf()->str();
std::cout <<"ss.rdbuf() : " << ss.rdbuf();
return 0;
}
날이 출력주기가
ss.rdbuf() -> STR() : HEJ가 HEJ이
ss.rdbuf을 파고 MED() : HEJ 메디 파기
왜 그렇습니까? ostreams 연산자의 정의로 인해 < str()은 다른 출력을 제공합니다. getline을 사용한 경우에도 내 눈에는 출력이 동일해야합니다.
오. 내가 값 비싼 C++ 서적 중 하나에서 찾은 사실은 휴가 중이므로 나는 단지 구글을 가졌고 이해할 수있는 방식으로 연산자 << 행동을 설명하는 사이트를 찾을 수 없었다. 실제로 getline이 스트림에서 delim으로 토큰을 제거했다고 생각했습니다. – mslot
값 비싼 C++ 책을 사용하지 않았습니다. 나는이 동작이 rbuf()가 지정되지 않았으며이 오버로딩 연산자 <<에 대한 표준을 살펴 보았습니다. – bayda
http://ra.dkuug.dk/jtc1/sc22/open/n2356/ - 무료 C++ 표준 초안 – bayda