关于\r和\n的思考源于处理FTP服务器返回的消息的时候,我知道消息末尾有\n,但是就算比较信息加上\n也不对,于是查了资料就发现原来消息末尾还有\r,然后就又去查了\r与\n,看了一些文章,做一点总结。
1、\r和\n的作用
\r就是回车,并且回到行首,\n就是换行,如果只有\r在末尾,那么在屏幕上是没有输出的
例如:
printf("hello\r");
printf("12345\n");
上面这代码是只有12345的输出
在看另外一个例子:
char str[] = "hello";
char str1[] = "hello\n";
char str2[] = "hello\r";
char str3[] = "hello\r\n";
int len = sizeof(str);
int len1 = sizeof(str1);
int len2 = sizeof(str2);
int len3 = sizeof(str3);
printf("len:%d len1:%d len2:%d len3:%d\n",len,len1,len2,len3);
输出:len:6 len1:7 len2:7 len3:8
这个例子实在Linux下执行的,说明\r也算是一个字符
2、关于\r和\n在Windows和Linux的区别
在Windows下用enter换行等于在最后加上\r\n,写入文章的也是\r\n
在Linux用enter换行等于最后加上\n,写入文章的也是\n
所以有时候会遇到Linux的文件到Windows下打开就只有一行