程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 深入解析Linux下\r\n的問題

深入解析Linux下\r\n的問題

編輯:C語言基礎知識
常在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作用一樣。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved