tft每日頭條

 > 汽車

 > 回車自動換行

回車自動換行

汽車 更新时间:2024-07-06 05:04:36
在Windows系統中打開txt文檔時,最下面的“Windows(CRLF)”是什麼提示呢?

回車自動換行(一文搞定換行)1

和這個問題有關概念的一個應用場景是:當你需要在不同操作系統平台(例如Unix和Windows)之間切換時,尤其是由一平台生成的文檔在另一平台查看時,就必須搞清楚 回車”(Carriage Return, CR)和“換行”(Line Feed, LF)這兩個概念之間的區别。

回車自動換行(一文搞定換行)2

電腦筆記本鍵盤上的回車鍵按鈕

Windows平台中輸入“Enter”輸入幾個符号?他們具體是什麼?

為回答這個問題,從下面的實驗開始。

在Windows下創建一個txt文檔,輸入'123456'六個數字并“回車\enter”,

回車自動換行(一文搞定換行)3

保存後,查看屬性,占8個字節,即輸入了八個字符,則剛才的“回車/enter”一定占了兩個字節

回車自動換行(一文搞定換行)4

這兩個字節是啥呢?

用UltraEdit軟件打開該文件,查看這是個符号的十六進制,可得:第一個符号的ASCII碼為31(十六進制),對于的符号為為數字'1';…;第七個符号的ASCII碼為 0D(十六進制),對應的符号為CR(回車);最後一個字符即第八個符号的ASCII碼為 0A(十六進制),對應的符号為LF (換行)

回車自動換行(一文搞定換行)5


結論:Windows下處理回車的效果是:回車換行,即兩個字符(\r\n ).


Windows平台下,C語言中輸出‘\n’到txt文檔時,輸出的是一個字符還是兩個呢?

答案是:兩個字符\r\n.

在Windows系統下運行下面兩個程序:


程序一:


#include <stdio.h>

void main( )

{

FILE *fp;

if((fp=fopen("test.txt","w")) = = NULL) {

printf("Open the test.txt file error\n");

}

for(int i=0;i<10;i ){

fprintf(fp,"test\n");

}

fclose(fp);

}


程序二:


#include <stdio.h>

void main( )

{

FILE *fp;

if((fp=fopen("test.bin","wb")) = = NULL) {

printf("Open the test.bin file error\n");

}

for(int i=0;i<10;i ){

fprintf(fp,"test\n");

}

fclose(fp);

}


程序一輸出文件test.txt的大小是60字節,程序二輸出文件大小是50字節,用記事本打開程序一的輸出沒有什麼問題,每行一個test. 打開程序二的輸出文件test.bin時發現所有的test連成一行,test之間是一個黑色方框符号分隔。用UltraEdit-32以16進制編輯模式打開test.bin可以查看到黑色方框符号就是0A也就是\n,打開test.txt則會發現換行是\r\n,這就是兩個文件大小相差10字節的原因。Unix類系統用戶打開windows中的文件就會遇到這種苦惱。

為什麼會有這種區别呢?

由于Unix系統是基于C語言編寫的,C語言中使用\n表示換行,而在實際的文件中換行符号需要同操作系統一緻,所以當我們在C中使用fopen打開一個文本文件時流實現了實際換行符與C中\n之間的轉換Windows中當用fopen打開文本文件,然後從中讀到\r\n時流會轉換為\n,而當我們往文件中寫入\n時流會轉換為\r\n。程序一是打開文本文件,程序二打開的是二進制文件,因為流隻對文本文件進行換行表示的轉換,以二進制模式打開流不會做任何處理。所以當你以二進制模式打開一個文本文件時将産生錯亂,你必須親自将\r\n解釋為\n,同樣的問題也會出現在以文本模式打開二進制文件的情況.這也解釋了為什麼Unix類系統中的文件不區分文本文件和二進制文件的原因。

軟回車 硬回車的區别

硬回車:enter

作用:換行的同時分隔段落;

在word中敲擊Enter鍵産生的那個彎曲的小箭頭占兩個字節。如下圖所示:

回車自動換行(一文搞定換行)6

軟回車: Shift Enter

作用:換行,但是并不換段,即前後兩段文字在 Word 中屬于同一“段”。在應用格式時能看出明顯區别,體會到這一點。

軟回車隻占一個字節,在word中是一個向下的箭頭。符如下圖所示:

回車自動換行(一文搞定換行)7

當我們需要将從網頁上找到資料複制粘貼到word文檔中時,經常看到軟回車符号,這是因為軟回車在網頁設計中具有舉足輕重的地位的:

軟回車能使前後兩行的行間距大幅度縮小,因為它不是段落标記,要和法定的段落标記——硬回車區别出來。硬回車的html代碼是<p>..</p>,段落的内容就夾在裡面,而軟回車的代碼很精悍:<br>。因此在網頁中想用到軟回車,隻需切換到代碼頁面,鍵入軟回車的代碼即可。

小結:

最後,本篇筆記開始的那個問題就很明确了:“Windows(CRLF)”是編輯器對Windows系統下,“回車”操作符等效為“\r\n”的一個提示。其實,在windows系統中的很多編輯環境中都有很多類似的提示,你能發現哪些呢?歡迎在評論區補充...

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关汽車资讯推荐

热门汽車资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved