gpt4 book ai didi

c - 当输出可以是非 ASCII 时,为什么要使用 fopen() 模式 'b' (stdio.h)?

转载 作者:太空狗 更新时间:2023-10-29 15:24:46 24 4
gpt4 key购买 nike

对于 C 标准库 stdio.h,我读到要输出 ASCII/文本数据,应该使用模式 "w" 并输出二进制数据,一个应该使用 "wb"。但为什么不同?

无论哪种情况,我都只是输出一个字节(字符)数组,对吗?如果我在 ASCII 模式下输出非 ASCII 字节,程序仍会输出正确的字节。

最佳答案

一些操作系统 - 大多称为“windows” - 不保证它们会按照你传入的方式读取和写入文件的 ascii。因此在 windows 上它们实际上将\r\n 映射到\n。这在读写ascii时很好,透明。但它会破坏二进制数据流。如果您希望它忠实地按照您传入的方式向文件读取和写入数据,基本上只需始终为 Windows 提供“b”标志。

关于c - 当输出可以是非 ASCII 时,为什么要使用 fopen() 模式 'b' (stdio.h)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com