在編寫nios上類shell使用者互動**時。由於要檢測終端輸入字元。所以想到了這個問題,故分析之。
回車符的ascii碼,ascii碼13 『\r』
換行符的ascii碼。ascii碼10 『\n』
符號 ascii碼 意義
\n 10 換行nl
\r 13 回車cr
回車 \r 本義是游標又一次回到本行開頭。r的英文return,控制字元能夠寫成cr,即carriage return
換行 \n 本義是游標往下一行(不一定到下一行行首)。n的英文newline。控制字元能夠寫成lf,即line feed
這裡面還有個小故事(**於網路)
在計算機還沒有出現之前,有一種叫做電傳打字機(teletype model 33)的玩意。每秒鐘能夠打10個字元。可是它有乙個問題,就是打完一行換行的時候。要用去0.2秒,正好能夠打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是。研製人員想了個辦法解決問題,就是在每行後面加兩個表示結束的字元。乙個叫做「回車」。告訴打字機把列印頭定位在左邊界;還有乙個叫做「換行」。告訴打字機把紙向下移一行。
這就是「換行」和「回車」的來歷,從它們的英語名字上也能夠看出一二。
後來,計算機發明了,這兩個概念也就被般到了計算機上。
那時,儲存器非常貴,一些科學家覺得在每行結尾加兩個字元太浪費了。加乙個就能夠。於是,就出現了分歧。
/***********************************===/
\n: unix 系統行末結束符
\r\n: window 系統行末結束符
\r: mac os 系統行末結束符
/***********************************===/
以下做幾個實驗。
1、win 中的情況
『\n』的測試
** cout<
結果 ssss
ee 『r』的測試
** cout<
結果 eess
檔案裡換行的實驗
新建檔案txt,輸入
this is test n and r【回車】
在notepad++中顯示為
然後用二進位制檢視器開啟這個檔案
我們看到回車之後實際是加入了兩個字串,ascii為13和10。也就是『\r』』\n』
新建檔案txt。輸入
this is test n and r
在notepad++中顯示為
然後用二進位制檢視器開啟這個檔案
從上面兩個實驗可知在一行結束時,win不會預設加上其它字元。僅僅有手動加上回車時,會自己主動加入上兩個字元。
在linux中測試
『\n』的測試
結果
『\r』的測試
結果 檔案裡換行實驗
vim linux_nr.txt
this is test n and r[回車]
將檔案用二進位制檢視器開啟後發現
相應的是兩個回車字元
vim linux_nr.txt(不回車)
this is test n and r
將檔案用二進位制檢視器開啟
對比上面兩組,linux系統中預設一行的結束是』\n』換行,所以手動回車,產生的是第二行結束符
將linux_nr.txt改動為
然後在win下開啟
看看吧
二進位制檢視器結果為
所以這樣的現象發生的原因是。在linux中每一行是以』\n』為標誌,然而win中是以『\r』『\n』為結束標誌的,所以,win檢測不到一行結束標誌,就連續顯示
處理Assetbundle依賴關係時想到的一道題
在處理unit3d的assetbundle依賴關係的時候,想到了一道有趣的題目 給定一堆資料,例如,b c d e 先判斷依賴關係,例如a包含b,e包含b,e包含c,然後分組,能包含的可以分為同一組,例如a b d,e c 求分組的方案以及最優的方案?這道題的答案其實很簡單,分組方案有兩種 這道題裡...
app編寫時注意的問題
1.判斷是否處於登入狀態,可通過判斷本機記憶體中的登入標誌完成。2.某些ajax訪問,可放在單獨的js檔案中。二 登入 index頁面判斷登入,如沒登入,採用mui.preload載入登入頁面。var webview mui.preload login頁面按下登入鍵後,要對登入名和密碼是否為空進行檢...
編寫介面時的coding思路
總結相信每位程式設計師都有自己的編碼習慣,我也不例外,今天就是隨筆暢談下我平時寫 的習慣 不喜勿噴 哈哈 這裡主要按照寫乙個method的思路進行展開 例子 string methodname gettheorderdetailbyorderid 例子 logger.info order.class...