c++ - 如何制作在每次输出操作后插入新行的流?

标签 c++ stream iostream

我想让 std::cout 在每个输出操作后插入一个换行符。例如,这样做:

std::cout << 1 << 2 << 3;

std::cout << 1;
std::cout << 2;
std::cout << 3;

应该输出:

1
2
3

我该怎么做?

最佳答案

一种可能性是创建您自己的简单流包装器。你需要一个模板化的 operator<<将参数转发到 std::cout(或其他包装流),并添加一个 std::endl之后。

我不会发布整个类(class),但运算符可能看起来像这样:

template <typename T>
my_stream_class &my_stream_class::operator<<(T const &value) {
    std::cout << value << std::endl;
    return *this;
}

关于c++ - 如何制作在每次输出操作后插入新行的流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367311/

相关文章:

c++ - 如果 std::cout 不以换行符结尾,是否保证打印字符串?

c++ - 如何在 C++ 中移动到上一行?

c++ - 如何解决 C++ 中的 typedef 重定义?

c++ - 为什么 for_each 不能在这里选择正确的打印

node.js - NodeJS : Unable to convert stream/buffer to base64 string

c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?

java - 为什么我们需要 FileInputStream in = null; try block 之前的行?

c++ - 在头文件中使用 lambda 会违反 ODR 吗?

C++内存流到C文件流

c++ - 从 iOS 应用程序将文件加载到 C++ 对象/iOS 上使用 <iostream> 的问题