常在Linux下操作,難免要遇到\r\n問題,特別在很多地方比如最近的郵件發送,怎麼都\r\n了,以前只有\n的時代好像已經過去了,因為我是一個比較喜歡總結的人,一個喜歡理論先行的人,所以,認真的測試並且理解了一番,盡管我個人認為是比較可以了,但,如果哪位高手看出了不妥之處,不吝賜教!
一、例子源文件:main.c例一:
#include <stdio.h>
int main(void)
{
printf("dddddd"); //6個d
printf("12345");
return 0;
}
結果:空例二:
printf("dddddd\r");
printf("12345 ");
結果:空例三:
printf("dddddd\n ");
printf("12345 ");
結果:dddddd例四:
printf("dddddd\r");
printf("12345\n");
結果:12345d
例五:
printf("dddddd\r\n");
printf("12345\n");
結果:dddddd
12345例六:
printf("dddddd\n \r ");
printf("12345\n");
結果:同五例七:
printf("dddddd\n \r ");
printf("12345");
結果:dddddd例八:
printf("dddddd\n");
printf("12345\r ");
結果:dddddd例九:
printf("dddddd\n");
printf("12345\n\r ");
結果:同五
二、總結:根據上面九個簡單而清楚的例子,以及我個人的一些理解,我就做個總結吧:
1.回車換行符,是2個符。一個回車,一個換行。\r僅僅是回車,\n是換行。一個是控制屏幕或者從鍵盤的Enter鍵輸入。另一個是控制“打印機”!
2.回車 = 光標到達最左側,換行 = 移到下一行。如果只回車,打印的東西會覆蓋同行以前的內容,如果只換行,打印的東西會在下一行的先一個位置繼續。
3.\r實際是回到行首。\n如果
下一行已經有了一些內容的話它會在那些內容的後邊.因為一般情況下下一行是沒有數據的,很多時候\n也就成了\r\n作用一樣。