• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我的CPP之路

            路漫漫其修遠兮
            隨筆 - 42, 文章 - 0, 評論 - 16, 引用 - 0
            數據加載中……

            [轉]不同操作系統對文本文件“行結束符”的不同定義

            http://dev.firnow.com/course/3_program/c++/cppsl/20081117/151346.html
            不同操作系統對文本文件“行結束符”的不同定義

            \n是換行,英文是LineFeed,ASCII碼是0xA。
            \r是回車,英文是Carriage Return ,ASCII碼是0xD。

            如果用過機械打字機,就知道回車和換行的區別了。。。
              換行就是把滾筒卷一格,不改變水平位置。 
              回車就是把水平位置復位,不卷動滾筒。


            但是我們平時按得Enter到底是回車還是換行,不太清楚??
            看到一種說法:windows下enter是 \n\r,unix下是\n,mac下是\r
            在MS的系統中純文本格式按一個回車鍵是輸入了兩個字符,一個回車一個換行。在LINUX系統中則只是一個回車。

            Unix系統里,每行結尾只有“<換行>”,即“\n”;Windows系統里面,每行結尾是“<換行><回
            車>”,即“\n\r”;Mac系統里,每行結尾是“<回車>”。一個直接后果是,Unix/Mac系統下的文件在
            Windows里打
            開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。Linux和其它Unix類操作系統使用單個字符作為行結束符,這個字符通常被稱作“換行符”(LF)或“新行”(NL)。

            Dos,Windows和OS2使用兩個字符作為行結束符,一個“回車”(CR)和一個LF。

            Mac OS只使用一個CR。

            有些Linux配置文件對行結束符規范很敏感,所以盡量不要試圖從Dos,windows或Mac OS系統中編輯Linux系統的配置文件。

            ---------分割線---------

            還有一篇也是講這個問題,作者還給出了一個解決方法:

            [轉]關于文本文件的格式------回車換行符(CR/LF)
            http://www.felix021.com/blog/read.php?774
            Unix和Windows間的文字檔轉換
            http://www.siuying.net/articles/2005/11/18/524/

            在用電報通訊的年代,人們發明了一種用7bits把常用的英文和標點編碼的方法 — 這就是至今還在電腦世界應用的ASCII。

            電 報機每當打印到一行結尾時便需要「跳進下一行」並「回到第一格」,因此ASCII有LF(Line Feed, 0×0A) 和CR(Carriage Return, 0×0D)。在電腦的世其實並不需要用兩個字符代表「下一行」的意思,為了省資源,在設計OS時一些人就決定用其中一個字符代表「下一行」1,因為大家選擇不同,做成了不同系統的「下一行」符號不同的問題。

            這 問題常見於在 Windows 上傳一些檔案到 Unix Server 中,如果不經轉換 Unix 會見到一些古怪符號 (顯示成^M的CR字符)。如果己經有一堆Windows的文字檔,怎樣把它們轉換成Unix的文字檔?不用自己寫轉換軟件,你可以使用Unix command tr (translate) 或 sed (Stream Editor):

            # USE tr TO REMOVE CR CHARACTER
            tr -d '\r' < oldfile > newfile


            # USE sed, IN UNIX ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
            sed 's/.$//' # assumes that all lines end with CR/LF
            sed 's/^M$//' # in bash/tcsh, press Ctrl-V then Ctrl-M

            # USE sed, IN UNIX ENVIRONMENT: convert Unix newlines (LF) to DOS format
            sed "s/$/`echo -e \\\r`/" # command line under ksh
            sed 's/$'"/`echo \\\r`/" # command line under bash


            ---------


            posted on 2010-12-26 11:50 yanvenhom 閱讀(1061) 評論(0)  編輯 收藏 引用 所屬分類: UNIX

            影音先锋女人AV鲁色资源网久久 | 狠狠色丁香婷婷久久综合| 久久强奷乱码老熟女| 久久精品国产久精国产| 国产亚洲色婷婷久久99精品91| 欧美久久亚洲精品| 久久水蜜桃亚洲av无码精品麻豆 | 久久免费小视频| 久久亚洲av无码精品浪潮| 三上悠亚久久精品| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久综合综合久久狠狠狠97色88| 久久久久香蕉视频| 九九久久99综合一区二区| 国产精品久久久久久久久久影院 | 97超级碰碰碰碰久久久久| 精品久久久无码21p发布| 国产精品成人99久久久久91gav| 日产精品久久久久久久性色| 国产福利电影一区二区三区久久老子无码午夜伦不 | 精品国产乱码久久久久久呢 | 国产精品9999久久久久| 中文字幕无码av激情不卡久久| 久久天堂电影网| 久久久久久久久无码精品亚洲日韩 | 91精品国产高清久久久久久io | 久久久噜噜噜久久| 青青草原综合久久| 国产精品视频久久| 国产成人久久AV免费| 久久久一本精品99久久精品66| 国产aⅴ激情无码久久| 欧美亚洲国产精品久久| 要久久爱在线免费观看| 色综合久久中文字幕综合网| 久久国产香蕉一区精品| 久久久久久久久久久免费精品| 精品久久久久久久中文字幕| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久国产精品无码一区二区三区| 亚洲av成人无码久久精品|