2010-06-02 3 views
1

Я использую VS2008 C++.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; 

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

ответ

4
std::ostringstream oss; 
oss << "number " << i; 
call_some_func_with_string(oss.str()); 
4

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

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

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

2

попробовать это:

#include <sstream> 
// [...] 
std::ostringstream buffer; 
int i = 5; 
buffer << "number " << i; 
std::string thestring = buffer.str(); // this is the droid you are looking for 
Смежные вопросы