我有這樣的代碼,爲什麼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