我知道如何用cout做到这一点:
cout << "string" << 'c' << 33;
但是如何执行此操作会将输出重定向到变量而不是直接转换为标准输出?
const char* string << "string" << 'c' << 33; //doesn't work
答案 0 :(得分:10)
使用C ++标准库中的std::stringstream
。
它的作用如下:
std::stringstream ss;
ss << "string" << 'c' << 33;
std::string str = ss.str();
const char* str_ansi_c = str.c_str();
请注意,当您使用C风格的str
时,str_ansi_c
仍然需要在范围内。
答案 1 :(得分:2)
#include <sstream>
#include <iostream>
main()
{
std::stringstream ss;
ss << "string" << 'c' << 33;
std::string str = ss.str();
std::cout << str;
}