在C / C ++中编写非打印字符的行为是什么?

如果字符是通过printf / fprintf编写的,那么编写非打印字符的行为是未定义的还是实现定义的? 我很困惑,因为C标准N1570 / 5.2.2中的单词仅涉及打印字符和字母转义序列的显示语义。

另外,如果字符是通过std::ostream (仅限C ++)编写的,该怎么办?

ASCII不可打印(控制)字符的输出是实现定义的。

具体而言,解释是输出设备的责任。

编辑1:
当输出设备作为文件打开时,它可以作为binary打开。 当以binary打开时,输出不会被转换(例如行结尾)。