gpt4 book ai didi

c - Windows中的 `fprintf()`和 `fscanf()`是否需要以文本模式打开文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:12 25 4
gpt4 key购买 nike

在 Windows 中对文本文件使用 fprintf()fscanf() 时,与二进制模式相比,是否有必要或建议以文本模式打开文件?

答案是否取决于在 Windows 中使用 Microsoft 的标准 C 库或 GNU Libc 实现?

最佳答案

在 Windows 中,二进制或文本模式因行尾转换而不同。

系统 进行行尾转换(例如通过低级 POSIX writeread)。不过没关系:行尾转换在文本模式下进行,二进制模式下什么都没有改变。

printf 和其他格式化函数最终调用处理此行尾转换的低级读/写/任何函数。

  • 当您在以文本模式打开的文件中写入换行符 \n 时,系统会在换行符之前添加一个 \r 字符。
  • 当您在以文本模式打开的文件中读取 \n 时,系统会删除换行符之前的 \r 字符。如果没有,它不会删除任何内容。如果有 2 个 \r 字符,它只会删除一个。

请注意,如果您想编写不带 \r 字符的 Linux 兼容文本文件,以二进制模式编写文本文件会很有用。

关于c - Windows中的 `fprintf()`和 `fscanf()`是否需要以文本模式打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56339340/

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