使用MSVC在文本模式下写入CR LF

问题描述 投票:0回答:1

我试图了解在 Windows(使用 MSVC)上以文本模式写入文件时换行符的行为。根据微软文档:

据说在文本模式下,

LF
(换行)字符在输出时会转换为
CR LF
(回车+换行)组合。

那么,如果一个有思想的程序员尝试在 Windows 上以文本模式编写

CR LF
组合,例如

,会发生什么?
fprintf(stream, "\r\n");

这是否会导致

CR CR LF
,由于翻译而使回车加倍,或者是否有不同的处理方式(保留为
CR LR
)?此行为是否有详细记录?

c windows visual-c++ io
1个回答
0
投票

根据由 Weather Vane 在评论中链接的

fopen()
的手册页:

在文本模式下,输入时回车换行 (CRLF) 组合将转换为单换行 (LF) 字符,输出时 LF 字符将转换为 CRLF 组合。

所以:

  • 在文本模式下,输出

    CR CR LF

  • 在二进制模式下,输出,

    CR LF

© www.soinside.com 2019 - 2024. All rights reserved.