Здравствуйте, Аноним, Вы писали:
А>есть std::string, значения которой состоит из слов разделенных пробелом,
А>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>Можно каким-нибудь стримом и >> воспользоваться ?
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>
int main()
{
std::istringstream s("word1 word2 word3");
std::istream_iterator<std::string> b(s);
std::istream_iterator<std::string> e;
std::ostream_iterator<std::string> o(std::cout, "\n");
std::copy(b, e, o);
}
Здравствуйте, Аноним, Вы писали:
А>есть std::string, значения которой состоит из слов разделенных пробелом,
А>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>Можно каким-нибудь стримом и >> воспользоваться ?
естественно :)
std::string str, word;
std::stringstream ss;
ss << str;
а потом просто зовешь ss >> word; пока не выгребешь все до конца.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Аноним, Вы писали:
А>>есть std::string, значения которой состоит из слов разделенных пробелом,
А>>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>>Можно каким-нибудь стримом и >> воспользоваться ?
J>естественно
J>J>std::string str, word;
J>std::stringstream ss;
J>ss << str;
J>
J>а потом просто зовешь ss >> word; пока не выгребешь все до конца.
тогда уж так:
std::istringstream iss(str);
iss >> world1;
iss >> world2;
... << RSDN@Home 1.1.0 stable >>
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Аноним, Вы писали:
А>>есть std::string, значения которой состоит из слов разделенных пробелом,
А>>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>>Можно каким-нибудь стримом и >> воспользоваться ?
J>естественно
J>J>std::string str, word;
J>std::stringstream ss;
J>ss << str;
J>
J>а потом просто зовешь ss >> word; пока не выгребешь все до конца.
Ок, а stringstream кидаю исключения, когда пытаюсь прочесть больше, чем есть ?
Если нет, то можно ли заставить ?
Здравствуйте, Аноним, Вы писали:
А>Ок, а stringstream кидаю исключения, когда пытаюсь прочесть больше, чем есть ?
А>Если нет, то можно ли заставить ?
Разрешить выбрасывание исключений для состояния eof:
stream.exceptions( stream.exceptions() | std::ios::eofbit );