c++ - 你能以类似于 std::cout 的方式创建一个字符串吗?

标签 c++

以下语句将所有类型的输出作为单个文本字符串通过管道传输到控制台

std::cout << "Hi, my name is " << name_as_string << " and I am " << age_as_int << " years old, while weighing " << weight_as_double << " kilograms.";

我们可以使用相同的语法在字符串变量中构建字符串吗?它是怎么做到的?

最佳答案

#include <sstream>

std::ostringstream ss;
ss << "Hi, my name is " << name_as_string;
ss << " and I am " << age_as_int << " years old, while weighing ";
ss << weight_as_double << " kilograms.";

std::string str = ss.str();

您还可以将 std::istringstream 用于多输入,将 std::stringstream 用于输入和输出。

std::string str = "1 2 3 4 5";
std::istringstream ss(str);
int i;
while( ss >> i) {
    std::cout << i;
}

关于c++ - 你能以类似于 std::cout 的方式创建一个字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042791/

相关文章:

c++ - 可以使 C++ 枚举大于 64 位吗?

c++ - 函数调用不显示 cout

c++ - c++ 中函数返回指针的规则是什么?我在代码中遗漏了什么吗?

c++ - 使用线程对 vector 进行排序

c++ - Visual Studio 2010 - 2015 不使用 ymm* 寄存器进行 AVX 优化

c++ - 非 unicode printf 不起作用

c++ - 带有模板类的 SWIG SHARED_PTR 宏

c# - 从 C# 而不是 C++ 调用时,非托管库函数失败

c++ - 'new' 关键字和类存储

c++ - 图像卷积和边界