質問

私は、このコード

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掘

がこの理由は何でしょうか?ではostreamsの定義はオペレーター私の目を出力する機能がございますのでもしている場合は使用getline.

役に立ちましたか?

解決

ss.rdbuf()->str();

返コピーのすべてのバッファの内容です。

何をやってい std::cout << ss.rdbuf();?

説明を参照のために

basic_ostream<charT,traits>& operator<<(basic_streambuf<charT,traits>* sb);

そこにある文字による文字からバッファに書き込もうとしostreamまで、eof/failィ/例外が発生します。

だき,誠にありがとうござい読み取らバフ.現在では残ります。

他のヒント

は、呼び出し、C ++ストリームI / O、ランガーとKreft の上で聖書から引用するとSTR()ストリームバッファ上(RDBUFによって返さすなわち事は())(私の版で72ページ)、「非常に直観に反するように動作します」。完全な物語のために、あなたは本を読んでする必要があります。

あなたはここで満足のいく答えを得られない場合は、Usenetグループを試してみます:

の<のhref = "のhttp://グループ。 google.com/group/comp.lang.c++.moderated」のrel = "nofollowをnoreferrer"> http://groups.google.com/group/comp.lang.c++.moderated の

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top