Как использовать Строковые Потоки C++ для добавления интервала?

кто-либо мог сказать мне или указать на меня на простой пример того, как добавить интервал к stringstream, содержащему слово "Something" (или какое-либо слово)?

14
задан Ciro Santilli 新疆改造中心法轮功六四事件 17 July 2016 в 19:54
поделиться

3 ответа

stringstream ss;
ss << "Something" << 42;

Для будущего ссылки проверьте это.

http://www.cplusplus.com/reference/ioStream/stringStream/

19
ответ дан 1 December 2019 в 12:13
поделиться

Я бы, наверное, сделаю что-то в этом общем порядке:

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

int main() {      
    std::stringstream stream("Something ");

    stream.seekp(0, std::ios::end);
    stream << 12345;

    std::cout << stream.str();
    return 0;
}

с нормальным потоком, чтобы добавить к концу, вы открыли с STD :: IOS :: ATE или STD :: IOS :: APP как второй параметр, но со строковыми потоками, который, кажется, не работает надежно (по крайней мере, с реальными компиляторами - ни GCC, ни VC ++ не дают выход, я ожидаю, что когда / если / если / если Я это делаю).

4
ответ дан 1 December 2019 в 12:13
поделиться

Если вы уже используете Boost, он имеет Lexical_Cast , которые можно использовать для этого. Это в основном упакованная версия вышеперечисленного, которая работает на любом типе, который можно записать и прочитать из потока.

string s("something");

s += boost::lexical_cast<string>(12);

Это, вероятно, не стоит использовать, если вы уже не используете Boost, но если вы можете сделать свой код более четким, особенно делать что-то вроде

foo(string("something")+boost::lexical_cast<string>(12));
1
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: