我有这样的代码,为什么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 MED挖
ss.rdbuf():HEJ med dig
但是为什么呢?那是因为运算符<的ostreams定义,str()给了我不同的输出。在我看来,即使使用getline,输出也应该是相同的。
哦。我从来没有对这本书的头!听起来像是一本好书,因为我觉得我有点像C++流的复杂性。 – mslot 2009-04-07 22:40:14
这本好书 - 如果你对溪流感兴趣。坦率地说,很少有C++程序员(包括我在内)。 – 2009-04-07 22:43:07