最近做一个串口终端程序,代码拿外国人的,调试的时候死活不成功,后来发现原来在回车符的处理上的问题,因为老外是在Linux平台下开发,而我在Windows下调试,这两个平台上回车换行各有区别如下:
一、概念:
换行符‘\n’和回车符‘\r’
(1)换行符就是另起一行 — ‘\n’ 10 换行(newline)
(2)回车符就是回到一行的开头 — ‘\r’ 13 回车(return)
所以我们平时编写文件的回车符应该确切来说叫做回车换行符
二、应用:
(1)在微软的MS-DOS和Windows中,使用“回车CR(‘\r’)”和“换行LF(‘\n’)”两个字符作为换行符;
(2)Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;
(3)Unix系统里,每行结尾只有 换行CR,即“\n”;
(4)Mac系统里,每行结尾是 回车CR 即’\r’。
三、影响:
(1)一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
(2)而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
(3)Linux保存的文件在windows上用记事本看的话会出现黑点。
来源: http://blog.csdn.net/tskyfree/article/details/8121951
问题找到了,怎么解决?要说还是SecureCRT好用啊,咱能设置输出的回车键!