c++: записать в строку через stream

172
16 ноября 2019, 21:40

Подскажите, как можно в строку разместить вывод:

std::string line;
line << "a" << value << std::endl;

а потом ещё сравнить line и line_old например

я потом буду записывать line в файл или выводить на экран, но для начала мне хочется строку сравнивать и обработать, но очень не хочется формировать строку через sprintf

Answer 1

Примерно так:

ostringstream sline;
sline << "a" << value << std::endl;
cout << sline.str() << endl;

Ну т.е. ваша строка возвращается как sline.str().

В одну строку - что-то вроде

cout << dynamic_cast<ostringstream&>(ostringstream() << "a" << 5 << endl).str();

но мне кажется, что это уже на грани фола...

READ ALSO
Возможно ли использование оператора == в std::enable_if? &lt;type_traits&gt;

Возможно ли использование оператора == в std::enable_if? <type_traits>

Предположим есть реализация шаблона проектирования object pool

155
Ошибка в методе шаблона класса. С++

Ошибка в методе шаблона класса. С++

Константные функции лучше делать константными:

157
Перегрузка оператора == и шаблоны

Перегрузка оператора == и шаблоны

Почему присутствие структуры Hard Logic приводит к ошибке компиляции, а структуры SoftLogic — нет?

146