c++ - C++ 标准是否允许通过 stdin/stdout 读写任意二进制数据?

标签 c++ language-lawyer c++17

我仍然对 C++17 标准关于允许从标准输入和输出中读入和写入的内容到底是什么感到困惑。

如果程序通过标准输入接受任意二进制数据或将任意二进制数据输出到标准输出(即使许多程序在实践中这样做),它是否会调用未定义的行为?

最佳答案

stdio 对于通过它传输的数据是完全中立的。

如果不是,它会破坏像 I/O 重定向这样的东西。如果你不能通过 stdio 发送原始二进制数据,你就不能使用插入工具,比如 gzip 压缩器到 shell 管道中。

关于c++ - C++ 标准是否允许通过 stdin/stdout 读写任意二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342133/

相关文章:

c++ - 在 mongodb c++ 驱动程序中使用声明 "not found"

c++ - 如何专门化 vector 类模板?

c++ - 在并行算法中使用 ranges::view::iota

c++ - MSVC2015 : inconsistencies with permissions 上的实验性 C++17 文件系统

c++ - 是明确的特化模板吗?

c++ - 返回局部变量是否返回拷贝并销毁原始变量(nrvo)?

c++ - 如何使用 C++ 分隔带分隔符的字符串?

c++ - BitBlt 两个图像在另一个之上

c++ - "Ambiguous base class"模板上下文错误

c++ - 严格别名是否会阻止您通过不同类型写入 char 数组?