我仍然对C++17标准中有关从标准输入和输出中读取和写入的内容存在困惑。
如果程序通过标准输入接受任意二进制数据或将任意二进制数据输出到标准输出,是否会导致未定义行为(尽管实际上许多程序都这样做)?
如果程序通过标准输入接受任意二进制数据或将任意二进制数据输出到标准输出,是否会导致未定义行为(尽管实际上许多程序都这样做)?
stdio 对于传输的数据完全中立。
如果不是这样,它会破坏像 I/O 重定向这样的东西。如果你不能通过 stdio 发送原始二进制数据,你就不能在 shell 管道中使用像 gzip 压缩器这样的插入工具。
\r\n
会被翻译成 \n
,反之亦然。 - user1143634_setmode
来改变翻译模式,_setmode(_fileno(stdin), _O_BINARY);
就可以解决问题。 - datenwolf