C ++ конвертирует отформатированную строку в поток - PullRequest
1 голос
/ 02 июня 2010

Я использую VS2008 C ++.

Насколько я понимаю, нет способа передать что-то подобное в поток C ++: (без использования внешних библиотек)

"number " << i    <------ when i is an integer.

Так что я искал лучший способ сделать это, и все, что я мог придумать, это создать строку, используя:

char fullstring = new char[10];
sprintf(fullString, "number %d", i);
.... pass fullstring to the stream  .....
delete[] fullString;

Я знаю, что это глупо, но есть ли лучший способ сделать это?

Ответы [ 3 ]

4 голосов
/ 02 июня 2010

Вы даже не удосужились попробовать ?

int i = 3;
std::cout << "number " << i;

Работает вполне нормально, и, естественно, то же самое должно работать с любым потоком.

4 голосов
/ 02 июня 2010
std::ostringstream oss;
oss << "number " << i;
call_some_func_with_string(oss.str());
2 голосов
/ 02 июня 2010

попробуйте это:

#include <sstream>
// [...]
std::ostringstream buffer;
int i = 5;
buffer << "number " << i;
std::string thestring = buffer.str(); // this is the droid you are looking for
...