1

エンジンのマップ読み込みバグと戦っていましたが、ついに見つけました。ただし、stringstream と getline に何か問題があるようです... 最小限のコード:

#include <string>
#include <iostream>
#include <sstream>

int main(int argc, char **argv)
{
    std::string text = "1!2!6|6|5|";
    std::stringstream buffer;
    buffer << text; // insert to buffer

    std::string temp;
    buffer >> temp; // extract
    buffer << temp; // then insert again (i need it in my code to count characters)
    // and I can't count it before, as in my code the buffer is filled from file

    std::string loaded;
    std::getline(buffer, loaded, '!'); //should instert "1" to loaded
    std::cout << loaded; //and it displays nothing, debugger shows loaded is empty
}

私は何か間違ったことをしていますか、それともバグですか? g++ 4.7 c++11 を使用しています。

4

1 に答える 1

4

この場合、stringstream から文字列を抽出するには、おそらく次のようにします。

temp = buffer.str();

それ以外の:

buffer >> temp;

参照:フォーマットされた (解釈された) データの抽出と stringstream.str ()

于 2012-12-23T14:50:37.827 に答える