【发布时间】:2012-06-06 21:50:35
【问题描述】:
\r 到 \r\n 转换的 C++ IO 流的哪一部分?是stream_buf 本身还是codecvt facet 的内部到外部编码转换的一部分?
更新 1
你们都说是在streambuf/filebuf中完成的。好的。但是这种安排如何处理,例如,像 UTF-16 这样的外部编码?然后似乎必须使用禁用翻译的ios::binary 标志打开文件。
【问题讨论】:
-
不应该是
\n到\r\n的转换吗?通常你会从可移植代码中得到一个\n,你需要在“windows like”表示之前添加换行符。 -
附加的
\r与使用的字符编码无关,它仍然是一个额外的字符。对于某些终端,\r控制终端写入光标从第 0 列开始。codecvt控制用于编码单个字符的字节数。
标签: c++ iostream streambuf codecvt