我正在使用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;
我知道这很愚蠢,但还有更好的方法吗?
答案 0 :(得分:4)
std::ostringstream oss;
oss << "number " << i;
call_some_func_with_string(oss.str());
答案 1 :(得分:4)
你有没有想过尝试?
int i = 3;
std::cout << "number " << i;
工作得很好,当然也适用于任何流。
答案 2 :(得分: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