#include <iostream>
using namespace std;
int main( int argc, char *argv[])
{
cout << "Hello\nWorld";
}
D:\test>hw |od -c
0000000 H e l l o \r \n W o r l d
0000014
Run Code Online (Sandbox Code Playgroud)
为什么要\r在Windows中注入额外的内容(在Linux上不会发生)?
Windows的一个功能可以追溯到MS-DOS的第一天.在那些系统中,惯例是行分隔符是字符对" \r\n".当然,在Linux/Unix/Solaris /等中,行分隔符是单个字符" \n"
有各种工具,如Linux的dos2unix和unix2dos它做什么,但这种转变.事实上,每个文件传输程序都有处理它的方法.请参阅kermit模式命令.
该约定影响了MSDOS/Windows C运行时库函数fopen()(以及其他):第二个参数可以具有b或t显式设置行分隔符转换.甲tEXT变换转换\r\n到\n上输入和\n到\r\n输出.内部b转换没有这种转变.
FILE *f1 = fopen ("somefile.txt", "rt"); /* open in text conversion mode */
FILE *f2 = fopen ("anotherfile.bin", "rb"); /* open without text conversion */
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |