stringstream не бярэ пробельные?

У мяне ёсць наступны код:

std::stringstream ss;
ss << 1 << "a b c";
std::string result;
ss >> result;
std::cout << result << std::endl;

Я бачу "1a" замест "1a B C".

I read somewhere that I should have ss << std::noskip. But it doesn't help.

Любая ідэя?

Загадзя дзякую.

4
Выкарыстоўвайце GetLine замест гэтага.
дададзена аўтар Kerrek SB, крыніца
Выкарыстоўвайце GetLine замест гэтага.
дададзена аўтар Kerrek SB, крыніца
Выкарыстоўвайце GetLine замест гэтага.
дададзена аўтар Kerrek SB, крыніца

6 адказы

std::getline(ss, result);

or, just get string

result = ss.str();
9
дададзена
noskipws карысна для чытання адзіночных сімвалаў
дададзена аўтар Armen Tsirunyan, крыніца
noskipws не ўплывае на струне, як вы думаеце. <�Код> 1а па-ранейшаму будзе прачытаць замест радка. Розніца прыходзіць у тым выпадку, калі паток пачынаецца з прабелам. калі вы ўводзіце `аа бб cc` затым без noskipws аа будзе счытвацца з noskipws -empty радкі!
дададзена аўтар Armen Tsirunyan, крыніца
У мяне была праблема з станд :: noskipws некаторы час таму, і я не знайшоў дакументацыю досыць выразны, так што я б з GetLine .
дададзена аўтар Djon, крыніца
@ArmenTsirunyan вы маеце рацыю. выпраўлена.
дададзена аўтар ForEveR, крыніца
@ForEveR дзякуй за ваша рашэнне!
дададзена аўтар Hei, крыніца
std::getline(ss, result);

or, just get string

result = ss.str();
9
дададзена
noskipws карысна для чытання адзіночных сімвалаў
дададзена аўтар Armen Tsirunyan, крыніца
noskipws не ўплывае на струне, як вы думаеце. <�Код> 1а па-ранейшаму будзе прачытаць замест радка. Розніца прыходзіць у тым выпадку, калі паток пачынаецца з прабелам. калі вы ўводзіце `аа бб cc` затым без noskipws аа будзе счытвацца з noskipws -empty радкі!
дададзена аўтар Armen Tsirunyan, крыніца
У мяне была праблема з станд :: noskipws некаторы час таму, і я не знайшоў дакументацыю досыць выразны, так што я б з GetLine .
дададзена аўтар Djon, крыніца
@ArmenTsirunyan вы маеце рацыю. выпраўлена.
дададзена аўтар ForEveR, крыніца
@ForEveR дзякуй за ваша рашэнне!
дададзена аўтар Hei, крыніца
std::getline(ss, result);

or, just get string

result = ss.str();
9
дададзена
noskipws карысна для чытання адзіночных сімвалаў
дададзена аўтар Armen Tsirunyan, крыніца
noskipws не ўплывае на струне, як вы думаеце. <�Код> 1а па-ранейшаму будзе прачытаць замест радка. Розніца прыходзіць у тым выпадку, калі паток пачынаецца з прабелам. калі вы ўводзіце `аа бб cc` затым без noskipws аа будзе счытвацца з noskipws -empty радкі!
дададзена аўтар Armen Tsirunyan, крыніца
У мяне была праблема з станд :: noskipws некаторы час таму, і я не знайшоў дакументацыю досыць выразны, так што я б з GetLine .
дададзена аўтар Djon, крыніца
@ArmenTsirunyan вы маеце рацыю. выпраўлена.
дададзена аўтар ForEveR, крыніца
@ForEveR дзякуй за ваша рашэнне!
дададзена аўтар Hei, крыніца
//Try using this for getting whitespace in string
    string input;
    cout<<"\nInput : "<<input;
    getline(cin,input);
    string result,label;
    std::stringstream sstr(input);
    while(sstr>>label){
        result=result+label+" ";
    }
cout<<"\nResult : "<
0
дададзена
//Try using this for getting whitespace in string
    string input;
    cout<<"\nInput : "<<input;
    getline(cin,input);
    string result,label;
    std::stringstream sstr(input);
    while(sstr>>label){
        result=result+label+" ";
    }
cout<<"\nResult : "<
0
дададзена
//Try using this for getting whitespace in string
    string input;
    cout<<"\nInput : "<<input;
    getline(cin,input);
    string result,label;
    std::stringstream sstr(input);
    while(sstr>>label){
        result=result+label+" ";
    }
cout<<"\nResult : "<
0
дададзена