徹底搞定回車0d和換行0a

2021-08-02 09:08:59 字數 1725 閱讀 4775

什麼是0x0d和0x0a

,可能大部分人都知道是回車和換行字元,但那個是回車,那個是換行?估計很多人都一時說不清楚了---

也許你不相信,那就調查下周圍的同事吧,估計會包含以下字眼「大概。我記得。回車是0x0d吧」。這次我移植arm-linux c的程式,至vc++,

發現了很多不同,尤其是這個回車換行浪費我一上午的時間,我決定藉此機會徹底搞定他們,

這兩個令人討厭的傢伙。   先說下浪費我一上午的那個東西----

教訓是很重要的,希望大家不要重蹈我的覆轍----,在arm-linux下,寫二進位制檔案,開啟檔案的時候 這樣寫就可

以了fp_wthdisk = fopen(file_pathname,"w");,以w

格式寫就可以了。把這段程式移植到vc++後,發現一旦我向檔案寫入0x0a,前邊就會自動加上0x0d

,我以為是我寫入陣列的問題,反覆檢查也沒有找到毛病,後來同事問我:「你是不是二進位制格式寫入的檔案?」我說:

「是呀,fwrite w格式,沒有問題呀」,後來他說,你試試「wb格式寫入一下」

,改為wb後,果真就好了,厲害!,我對他豎起了大拇指。  

看到這裡,上邊促使我下決心搞清楚回車換行的原因說完了。我想可能有人會犯同樣錯誤的。

但如果你對以下幾個問題,都知曉了,就不必浪費時間,繼續看下去了。   1.在windows xp visual c++下,按下回車鍵,系統獲得的字元是0x0d

還是0x0a,還是0x0d和0x0a?

2.回車(0x0d)的作用是回到本行的行首位置,表示本行已經輸入完畢,停留在最後乙個位置,還是游標轉移到下一行的起始位置?

1.的答案是僅獲得字元 

0x0d    2.

答案是回車的作用只是移動游標至該行的起始位置    注意:回車和換行在不同環境下的意義不同,正如sleep(1)和sleep(1

)【注意s大寫】這兩個函式的不同一樣,sleep(1)在linux下表示延時1s,而sleep(1)在vc++下表

示延時1ms

,如果不依據環境來討論回車和換行,是無意義的,只能是讓人們誤入歧途和浪費時間。  

我只在arm-linux c和vc++

下做了試驗,請大家在接觸其它語言環境下,小心推廣,不行就自己動手做試驗,最可靠。在arm-linux c和vc++下回車換行的意義如下。 

回車 **:cr ascii碼:\ r ,十六進製制,0x0d

,回車的作用只是移動游標至該行的起始位置; 

換行 **:lf ascii碼:\ n ,十六進製制,0x0a,換行至下一行行首起始位置; 

linux和windows下,回車試驗 

code: 

sprintf(versionbuf,"%s","test_version_1_0_11\rabcdefg\r34567\n"); printf("%s",versionbuf);

均列印輸出:34567fgrsion_1_0_11,證明了以上結論。  

其實回車和換行之所以把大家搞迷糊的乙個重要原因,是大家把鍵盤的 

「回車鍵」,0x0d表示「回車」,我們在windows

下的txt檔案下敲下的回車鍵等情況攪在了一起。在鍵盤上敲下回車鍵,在不同軟體下獲得字元大有不同。 

windows下在

txt檔案中敲下回車鍵,然後16進製制觀察,你會發現獲得了2個字元,0x0d和0x0a,這個大家都知道,但這不意味著,在任何情況下敲下回車鍵,都會獲得0x0d和0x0a。    在linux下,你對乙個檔案,敲下回車鍵,你就會發現,它每次只增加乙個字元。

徹底搞定0x0d和0x0a

我只在arm linux c和vc 下做了試驗,請大家在接觸其它語言環境下,小心推廣,不行就自己動手做試驗,最可靠。在arm linux c和vc 下回車換行的意義如下。回車 cr ascii碼 r 十六進製制,0x0d,回車的作用只是移動游標至該行的起始位置 換行 lf ascii碼 n 十六進製...

微軟證實IE的HTML渲染引擎中存在0day漏洞

微軟昨日發布安全公告 kb2488013 證實日前 的乙個ie漏洞可能會導致遠端 攻擊。這是一家法國安全公司vupen在本月初 的oday漏洞,微軟隨後開展了調查,就在vupen公開了攻擊 的同時,微軟也發布了安全公告,警告使用者避免受到此漏洞的影響。微軟當前正在開發補丁以便能盡快修復該漏洞,在補丁...

python語言複數型別實部不可以為0 day2

1.常用快捷鍵 ctrl s 儲存 ctrl 新增或者取消單行注釋 ctrl c 複製 拷貝 ctrl v 貼上 ctrl x 剪下 ctrl z 撤銷 ctrl shift z 反撤銷 ctrl a 全選 ctrl f 查詢 ctrl r 替換 ctrl shift f10 執行 按住 optio...