总结:不同计算机上c语言统一规定为:
文本文件的行结束符一律变成一个符号LF,也就是换行符,也就是new line符, 也就是'\n'.
“回车和换行符转换成一个换行符”-- 对PC机而言,文本文件行结束符,CRLF读入后,丢掉CR,留 LF.
例如fgets() 读入一行,行尾只有LF,没有CR.
目录栏:
(1)换行符‘\n’和回车符‘\r’
(2)常见字符ASCII值
正文:
(1)换行符‘\n’和回车符‘\r’
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符 (顺序注意)
'\n' 10 换行(newline)
'\r' 13 回车(return)
也可以表示为'\x0a'和'\x0d'.(16进制)
在windows系统下,回车换行符号是"\r\n".但是在Linux等系统下是没有"\r"符号的。
1)在Windows中:
'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,当重新输入新内容时,本行以前的内容会被逐一覆盖;—————只是控制当前位置(相当与指针)的变化,该行的内容不会被清空或替换,除非有相应新内容输入替代
'\n' 换行,换到当前位置的下一行,而不会回到行首;
2)Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
例:
$ echo -en '12\n34\r56\n\r78\r\n' > tmp.txt
a-z:97-122
A-Z:65-90
0-9:48-57