在C/C++中写一个非打印字符是什么行为?
What is the behavior of writing a non-printing character in C/C++?
如果字符是通过 printf
/fprintf
写入的,那么写入非打印字符的行为是未定义的还是实现定义的?我很困惑,因为C标准N1570/5.2.2中的单词只谈到了打印字符和字母转义序列的显示语义。
此外,如果字符是通过std::ostream
(仅限C++)编写的怎么办?
ASCII non-printable(控制)字符的输出是实现定义的。
具体来说,解释是输出设备的责任。
编辑 1:
当输出设备作为文件打开时,它可以作为binary
打开。当以 binary
打开时,输出不会被翻译(例如行尾)。
如果字符是通过 printf
/fprintf
写入的,那么写入非打印字符的行为是未定义的还是实现定义的?我很困惑,因为C标准N1570/5.2.2中的单词只谈到了打印字符和字母转义序列的显示语义。
此外,如果字符是通过std::ostream
(仅限C++)编写的怎么办?
ASCII non-printable(控制)字符的输出是实现定义的。
具体来说,解释是输出设备的责任。
编辑 1:
当输出设备作为文件打开时,它可以作为binary
打开。当以 binary
打开时,输出不会被翻译(例如行尾)。