版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、unix系統(tǒng)下的回車一下就是一個(gè)n給出如下代碼:#include <iostream> using namespace std; int main() cout << "this is the first linen" cout << "this is the second liner" cout << "this is the third linen" cout << "this is the fouth liner" cout << &qu
2、ot;this is the fifth linen" cout << "end" ; return 0; 運(yùn)行結(jié)果如下:回車換行(nr):每次光標(biāo)移到下一行的行首位置處;換行(r):每次光標(biāo)移到本行的行首位置處。另見: 回車、換行的區(qū)別 他們間的區(qū)別其實(shí)是個(gè)回車換行的問題先來段歷史回車”(Carriage Return)和“換行”(Line Feed)這兩個(gè)概念的來歷和區(qū)別。符號(hào) ASCII碼
3、0; 意義n 10 換行r 13 &
4、#160; 回車CR在計(jì)算機(jī)還沒有出現(xiàn)之前,有一種叫做電傳打字機(jī)(Teletype Model 33,Linux/Unix下的tty概念也來自于此)的玩意,每秒鐘可以打10個(gè)字符。但是它有一個(gè)問題,就是打完一行換行的時(shí)候,要用去0.2秒,正好可以打兩個(gè)字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個(gè)字符將丟失。于是,研制人員想了個(gè)辦法解決這個(gè)問題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做“換行”,告訴打字機(jī)把紙向下移一行。這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。后來,計(jì)
5、算機(jī)發(fā)明了,這兩個(gè)概念也就被般到了計(jì)算機(jī)上。那時(shí),存儲(chǔ)器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)了,加一個(gè)就可以。于是,就出現(xiàn)了分歧。在Windows中:'r' 回車,回到當(dāng)前行的行首,而不會(huì)換到下一行,如果接著輸出的話,本行以前的內(nèi)容會(huì)被逐一覆蓋;'n' 換行,換到當(dāng)前位置的下一行,而不會(huì)回到行首;Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即"n";Windows系統(tǒng)里面,每行結(jié)尾是“<回車><換行>”,即“rn”;Mac系統(tǒng)里,每行結(jié)尾是“<回車>”,即"r";。一
6、個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)M符號(hào)。例:$ echo -en '12n34r56nr78rn' > tmp.txt分別在Windws和Linux中查看此文件可知:Linux中遇到換行符("n")會(huì)進(jìn)行回車+換行的操作,回車符反而只會(huì)作為控制字符("M")顯示,不發(fā)生回車的操作。而windows中要回車符+換行符("rn")才會(huì)回車+換行,缺少一個(gè)控制符或者順序不對(duì)都不能正確
7、的另起一行。 另見:回車的傳說兼談nr區(qū)別(轉(zhuǎn)載)如果你有在windows下編程的經(jīng)驗(yàn)就會(huì)發(fā)現(xiàn)windows下敲下回車鍵會(huì)產(chǎn)生兩個(gè)字符CR和LF,用16進(jìn)制編輯器打開windows下的文本文件也會(huì)看到換行是0D和0A表示的,也就是CR和LF的ASCII編碼。而在UNIX類系統(tǒng)中換行只有一個(gè)字符LF,所以UNIX中的文本文件在windows中用記事本打開會(huì)出現(xiàn)不可解析字符且丟失換行格式,所有字符連成一行。 因?yàn)閣indows下的記事本讀到LF時(shí)不知道這就是換行(只有CR和LF連續(xù)出現(xiàn)才能解釋為換行),于是當(dāng)作不可打印字符處理,就是一個(gè)黑色方框。CR和
8、LF分別表示“回車”(carriage return)和“換行”(line feed),ASCII編碼為13和10,在C語言中用r和n表示。 為什么windows下要用兩個(gè)字符表示換行?這就是今天要講的故事:回車的傳說 在計(jì)算機(jī)剛剛誕生之時(shí),廣泛使用Teletype公司制造的一種古老的終端(console terminal)電傳打字機(jī)ASR33。ASR33每秒鐘可以打10個(gè)字符。但是它有一個(gè)問題,就是打完一行換行的時(shí)候,打印頭從行尾移到行首再下移一行要用去0.2秒,正好可以打兩個(gè)字符。要是在這0.2秒里面,又有新的字符傳過
9、來,那么這個(gè)字符將丟失,那時(shí)可沒有緩沖區(qū)暫存。Teletype的研究人員想了個(gè)辦法解決這個(gè)問題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做“換行”,告訴打字機(jī)把紙向下移一行。這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。下面是一些參考資料:History of The Teletype CorporationThe Teletype Corporation ASR 33 Teletype (1967). ( 1968年蓋茨在湖濱中學(xué)玩的就是這種機(jī)器,他們通過這種終端編寫B(tài)ASIC程序。因?yàn)?ASR 33只使用大
10、寫字母,所以BASIC程序以大寫字母為主) 后來,計(jì)算機(jī)的史前時(shí)代結(jié)束了,小型機(jī)誕生了,現(xiàn)代文明的鍵盤也發(fā)明了,但回車和換行的概念仍被保留下來。一些計(jì)算機(jī)設(shè)計(jì)者認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)也沒有必要了,加一個(gè)就可以。于是就出現(xiàn)了分歧。 Unix系統(tǒng)里使用<line feed>表示換行,每行結(jié)尾只有一個(gè)換行符n,MSDOS和Windows系統(tǒng)里面每行結(jié)尾是<回車><換行>(<carriage return><line feed>)即rn,Apple的Mac系統(tǒng)里每
11、行結(jié)尾是<回車>(<carriage return>)即r。一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;而Windows里的文件在Unix/Mac下打開的話,某些文本編輯器可能在每行的結(jié)尾會(huì)多出一個(gè)M符號(hào)。 本人覺得用兩個(gè)字符表示換行實(shí)在有些畫蛇添足,但是在網(wǎng)絡(luò)的世界里這一現(xiàn)象卻大量存在,不少網(wǎng)絡(luò)協(xié)議規(guī)定報(bào)文必須使用CR-LF換行模式。你怎么看呢?前不久在CU的論壇對(duì)這一問題進(jìn)行了討論:這個(gè)和編程有關(guān)系嗎?有的,但是在標(biāo)準(zhǔn)C里通常情況下是體會(huì)不到的,標(biāo)準(zhǔn)C的流提供系統(tǒng)無關(guān)抽象層??梢栽趙indows
12、系統(tǒng)中進(jìn)行一下實(shí)驗(yàn): 程序一:- #include <stdio.h> int main(void) int i; FILE *fp; if(fp=fopen("test.txt","w") = NULL) fprintf(stderr,"open file errorn"); return 1; for(i=0;i<100;i+) fprintf(fp,"testn"); fclose(fp); return 0; 程序二:-&
13、#160;cpp view plaincopyprint? #include <stdio.h> int main(void) int i; FILE *fp; if(fp=fopen("test.bin","wb") = NULL) fprintf(stderr,"open file errorn"); return 1; for(i=0;i<100;i+) fprintf(fp,"testn"); fclose(fp); return 0; -程序一輸出文件大小是600字節(jié)
14、,程序二輸出文件大小是500字節(jié),用記事本打開程序一的輸出沒有什么問題,每行一個(gè)test,打開程序二的輸出發(fā)現(xiàn)所有的test連成一行,test之間是一個(gè)黑色方框符號(hào)分隔。用UltraEdit-32以16進(jìn)制編輯模式打開test.bin可以查看到黑色方框符號(hào)就是0A也就是n,打開test.txt則會(huì)發(fā)現(xiàn)換行是rn,這就是兩個(gè)文件大小相差100字節(jié)的原因。Unix類系統(tǒng)用戶打開windows中的文件就會(huì)遇到這種苦惱。為什么會(huì)有這種區(qū)別呢? 畢竟是源自Unix系統(tǒng),C語言中使用n表示換行,而在實(shí)際的文件中換行符號(hào)需要同操作系統(tǒng)一致,所以當(dāng)我們?cè)贑中使用fopen打
15、開一個(gè)文本文件時(shí)流實(shí)現(xiàn)了實(shí)際換行符與C中n之間的轉(zhuǎn)換。在windows中當(dāng)我們用fopen打開文本文件,然后從中讀到rn時(shí)流會(huì)轉(zhuǎn)換為n,而當(dāng)我們往文件中寫入n時(shí)流會(huì)轉(zhuǎn)換為rn。程序一是打開文本文件,程序二打開的是二進(jìn)制文件,因?yàn)榱髦粚?duì)文本文件進(jìn)行換行表示的轉(zhuǎn)換,以二進(jìn)制模式打開流不會(huì)做任何處理。所以當(dāng)你以二進(jìn)制模式打開一個(gè)文本文件時(shí)將產(chǎn)生錯(cuò)亂,你必須親自將rn解釋為n,同樣的問題也會(huì)出現(xiàn)在以文本模式打開二進(jìn)制文件的情況.這也解釋了為什么Unix類系統(tǒng)中的文件不區(qū)分文本文件和二進(jìn)制文件的原因。 當(dāng)我們使用標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí)有這種情況嗎? 再回到我們熟悉
16、的標(biāo)準(zhǔn)輸入輸出stdin,stdout C的控制臺(tái)程序在加載進(jìn)內(nèi)存成為進(jìn)程運(yùn)行前C運(yùn)行時(shí)庫自動(dòng)打開三個(gè)設(shè)備并關(guān)聯(lián)到三個(gè)流:標(biāo)準(zhǔn)輸入流stdin,標(biāo)準(zhǔn)輸出流stdout,標(biāo)準(zhǔn)出錯(cuò)流stderr 通常在通用計(jì)算機(jī)中,沒有重定向前這三個(gè)流對(duì)應(yīng)的設(shè)備是:鍵盤,顯示器,顯示器。這三個(gè)都是字符設(shè)備,所以是以文本文件的模式打開的,在windows下當(dāng)我們?cè)阪I盤上敲入回車鍵時(shí)產(chǎn)生字符rn,但是在OS內(nèi)核把鍵盤驅(qū)動(dòng)中讀到的字符發(fā)送給流的緩沖區(qū)時(shí)流會(huì)將之轉(zhuǎn)換為n,當(dāng)我們向控制臺(tái)輸出n時(shí)流將之轉(zhuǎn)換為rn再傳遞至內(nèi)核,當(dāng)我們繞過標(biāo)準(zhǔn)輸入輸出直接調(diào)
17、用windows中coredll.lib進(jìn)行控制臺(tái)輸入輸出時(shí)就必須面對(duì)這一現(xiàn)實(shí),程序員負(fù)責(zé)實(shí)現(xiàn)這一轉(zhuǎn)換。 其他解釋:/r 回車符 /n 換行符 其中 /r的碼值是13 ,謝謝_詳細(xì)的看看下面的說明:MS-DOS文本文件用回車符和換行符的組合rn表示行尾。Macintosh文本文件使用只用一個(gè)回車符r來表示行尾。C程序使用n表示行尾。所以,在C程序以文本方式打開一個(gè)MS-DOS文本文件時(shí),會(huì)將rn轉(zhuǎn)換為n,在寫入文件的時(shí)候它會(huì)將n轉(zhuǎn)換為rn。(如果以二進(jìn)制方式打開該文件,則C程序?qū)⒖吹絩和n兩個(gè)字符。)而對(duì)于Macintosh文本文件的文本視圖,在讀取文件時(shí)它會(huì)將r轉(zhuǎn)換為n,在寫入文件
18、的時(shí)候它會(huì)將n轉(zhuǎn)換為rn是換行符,但不會(huì)刷新緩沖區(qū)endl在輸出一個(gè)換行符后,立即刷新緩沖區(qū),這樣不管緩沖區(qū)有沒有被寫滿,數(shù)據(jù)都直接發(fā)送到輸出設(shè)備c語言 - 回車符和換行符Unix 系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“n”;Windows系統(tǒng)里面,每行結(jié)尾是“<換行><回車>”,即“nr”;Mac系統(tǒng)里,每行結(jié)尾是“<回車>”。一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)M符號(hào)。在Windows環(huán)境中,如果輸入到文本文
19、件,程序中的一個(gè)'n'換行符被解釋成'r'、'n'兩個(gè)字符(會(huì)車、換行);相反,如果讀取文本文件,文件中的相鄰的兩個(gè)'r'、'n'會(huì)合并為一個(gè)'n'輸出。但是在Unix/Linux環(huán)境下,'n'就是'n',保持不變。 因此,Windows下的文本文件和Unix/Linux下的文本文件的格式是不同的,其原因就在于對(duì)于程序中的'n'換行符的解釋不同。'n',(換行符)是換行走紙,沒有回車,回車是由'
20、r'實(shí)現(xiàn) 。 在UNIX中,早期的輸入通常是穿孔機(jī),沒有什么回車概念。在DOS中,由于是屏幕輸入,通常就有了'r''n'的區(qū)別,為了保證每次換行都能從頭開始,DOS中的換行符通常會(huì)被存儲(chǔ)為'rn'。r與n的區(qū)別,rn與n或r的區(qū)別(C語言/C#)本文出處 原作者:triout(笨牛)r表示回車,n表示換行,我們按回車按鈕的時(shí)候,系統(tǒng)自動(dòng)產(chǎn)生回車和換行兩個(gè)字符: 回車僅僅是表示完成,把光標(biāo)回到行首, 換行僅僅是換行,不表示完成,也不把
21、光標(biāo)放到行首。 示例:(下面用I表示光標(biāo)) 1 輸出abcdef后: abcdefI 2 輸出回車后: Iabcdef 2 如果是輸出換行:
22、60; abcdef I 3 輸出回車和換行: abcdef I 可用C語言來測(cè)試回車與換行的區(qū)別:假設(shè)當(dāng)前光標(biāo)的位置是5行
23、10列,輸出回車后,光標(biāo)位置變?yōu)?行1列,如果輸出的是換行則是6行10列,如果輸出回車和換行則是6行1列。 如果你要想輸出r或n這樣的內(nèi)容,你需要使用這樣的方法: Console.Write("rn"); 或 Console.Write("rn"); 輸入回車后,產(chǎn)生的兩個(gè)字符回車和換行 C語言中換行符和回車
24、符的區(qū)別(轉(zhuǎn))換行(n)將當(dāng)前位置移動(dòng)到下一行開頭?;剀?r)將當(dāng)前位置移動(dòng)到本行開頭。退格(b)將當(dāng)前位置移動(dòng)到錢一列。Enter鍵按下后會(huì)執(zhí)行nr這樣就是我們看到的一般意義的回車了,所以你用16進(jìn)制文件查看方式看一個(gè)文本,就會(huì)在行尾發(fā)現(xiàn)"nr"Tab是制表符,就是"t",作用是預(yù)留8個(gè) 字符的顯示寬度,用于對(duì)齊。 -在計(jì)算機(jī)還沒有出現(xiàn)之前,有一種叫做電傳打字機(jī)(Teletype Model 33)的玩意,每秒鐘可以打10個(gè)字符。但是它有一個(gè)問題,就是打完一行換行的時(shí)候,要用去0.2秒,正好可以打兩個(gè)字符。要是在
25、這0.2秒里面,又有新的字符傳過來,那么這個(gè)字符將丟失。于是,研制人 員想了個(gè)辦法解決這個(gè)問題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做“換行”,告訴打字機(jī)把紙向下移一行。這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。后來,計(jì)算機(jī)發(fā)明了,這兩個(gè)概念也就被般到了計(jì)算機(jī)上。那時(shí),存儲(chǔ)器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)了,加一個(gè)就可以。于是,就出現(xiàn)了 分歧。 Unix系統(tǒng)里,每行結(jié)尾只有“<換行>”,即“n”;Windows系統(tǒng)里面,每行結(jié)尾是“<換行
26、><回車>”,即“nr”;Mac系統(tǒng)里,每行結(jié)尾是“<回車>”。一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會(huì)變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會(huì)多出一個(gè)M符號(hào)。 在ascii中,回車和換行是不同的字符。0x0A是回車,即光標(biāo)移動(dòng)到本行的最左面; 0x0D是換行,即光標(biāo)移動(dòng)到下一行。 在dos窗口中按回車鍵,其實(shí)是輸入了兩個(gè)字符0x0A,0x0D,對(duì)應(yīng)到c中,就是r(回車)n(換行)
27、 在C語言中 將 n 存入文件 window: 0d 0a unix: 0d 如果不存到文件中,不會(huì)變。 如果從文件中提取, windows: 0d 0a -> n unix : 0d -> n 回車鍵,即鍵盤上的ENTER鍵,是一個(gè)比較有用的鍵,
28、在文字編輯時(shí),回車鍵的作用是換行,在輸入網(wǎng)址時(shí)回車鍵的作用是“轉(zhuǎn)到”,在執(zhí)行DOS命令時(shí),回車鍵的作用是執(zhí)行 在標(biāo)準(zhǔn)鍵盤上,回車鍵一共有2個(gè),一個(gè)在主鍵盤區(qū)的右邊,Shift鍵的上面,一個(gè)在小鍵盤的,加號(hào)鍵的下面。 回車鍵的歷史 關(guān)于“回車鍵”的來歷,還得從機(jī)械的英文打字機(jī)說起。在打字機(jī)上,有一個(gè)部件叫“字車”,每輸入一個(gè)單詞,“字車”就前進(jìn)一格。當(dāng)輸滿一行后,使用者就要推動(dòng)“字車”到起始位置,這時(shí)打字機(jī)會(huì)有兩個(gè)動(dòng)作:“字車”歸位、滾筒上卷一行(相當(dāng)于“字車”下移一行),以便開始輸入下一行,這中推動(dòng)“字車
29、”的動(dòng)作叫“回車”。后來,在電動(dòng)的打字機(jī)上,人們?cè)黾恿艘粋€(gè)直接起“回車”作用的鍵。他被稱為“回車鍵”。 在現(xiàn)今的電腦鍵盤上,“回車鍵”上曾使用過“CR”、“RETURN”的字樣,后來才統(tǒng)一確定為“Enter”。 回車的ASCII代碼 16進(jìn)制是“0x0d” 10進(jìn)制是“13” 在某些語言中可以用r表示。 如果用過機(jī)械打字機(jī),就知道回車和換行的區(qū)別了。 換行就是把滾筒卷一格,不改變水平位置。
30、60;回車就是把水平位置復(fù)位,不卷動(dòng)滾筒。 但是我們平時(shí)按得Enter到底是回車還是換行,不太清楚? 看到一種說法:windows下enter是 nr,unix下是n,mac下是r 在MS的系統(tǒng)中純文本格式按一個(gè)回車鍵是輸入了兩個(gè)字符,一個(gè)回車一個(gè)換行。在LINUX系統(tǒng)中則只是一個(gè)回車。 /以上內(nèi)容參考了還有在編程時(shí)文件操作 wb(二進(jìn)制方式)或者wt(文本方式)也會(huì)有影響。我做了個(gè)實(shí)驗(yàn)(實(shí)驗(yàn)用.net2
31、003) 在01.txt文件中輸入12然后enter,在ultraedit中看到的二進(jìn)制是31 32 0d 0a 然后程序如下: int mian() FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6; char a10; char b10; fp1 = fopen(&quo
32、t;01.txt","r"); fp3 = fopen("02.txt","w"); fread(a,sizeof(unsigned char),8,fp1); /a里是31 32 0a fwrite(a,sizeof(unsigned char),8,fp3); /02.txt里是31 32 0d 0a ,原因是輸入的情況下,換行回車轉(zhuǎn)換成
33、換行,然后輸出時(shí)換行又會(huì) 轉(zhuǎn)成換行回車 fclose(fp1); fclose(fp3); fp2 = fopen("01.txt","rb"); fp4 = fopen("03.txt","wb"); fread(b,sizeof(unsigned char),8,fp2); /b里是31 32 0d
34、160;0a fwrite(b,sizeof(unsigned char),8,fp4); /03.txt里是31 32 0d 0a ,原因是二進(jìn)制情況下回車和換行的(類似文本方式的那種轉(zhuǎn)換)是不存在的 fclose(fp2); fclose(fp4); return 0; 好像結(jié)論是這樣的:讀的方式下,在文本方式下,enter是0x0a;在二進(jìn)制方式下,enter是0x0d,0x
35、0a。 MSDN中查到這樣的話:Also, in text mode, carriage returnlinefeed combinations are translated into single linefeeds on input, and linefeed characters are translated to carriage returnl
36、inefeed combinations on output. (輸入的情況下,換行回車轉(zhuǎn)換成換行,然后輸出時(shí)換行又會(huì)轉(zhuǎn)成換行回車)When a Unicode stream-I/O function operates in text mode (the default), the source or destination stream is assumed to
37、be a sequence of multibyte characters. Therefore, the Unicode stream-input functions convert multibyte characters to wide characters. For the same reason, the Unicode stream-output
38、;functions convert wide characters to multibyte characters. Open in binary (untranslated) mode; translations involving carriage-return and linefeed characters are suppressed. (
39、二進(jìn)制情況下回車和換行的轉(zhuǎn)換是不存在的). 再引用一篇:軟硬回車 硬回車就是普通我們按回車產(chǎn)生的,它在換行的同時(shí)也起著段落分隔的作用。 軟回車是用 Shift + Enter 產(chǎn)生的,它換行,但是并不換段,即前后兩段文字在 Word 中屬于同一“段”。在應(yīng)用格式時(shí)你會(huì)體會(huì)到這一點(diǎn)。 切換: 編輯替換,點(diǎn)擊高級(jí),在“查找內(nèi)容”點(diǎn)入“特殊字符”中的手動(dòng)換行符,
40、再在“替換為”中點(diǎn)入“特殊字符”中的段落標(biāo)記,最后點(diǎn)擊全部替換。 鍵盤上只有一種回車鍵Enter,但卻有兩種不同性質(zhì)的換行標(biāo)記,不能不說是一個(gè)奇跡。 我們常用的回車是硬回車,就是在word中敲擊Enter鍵產(chǎn)生的那個(gè)彎曲的小箭頭,占兩個(gè)字節(jié)。這種回車可以有效地把段落標(biāo)記出來分清楚。在兩個(gè)硬回車之間的文字自成一個(gè)段落,可以對(duì)它單獨(dú)設(shè)置段落標(biāo)記而不用擔(dān)心其他段落受到影響。這也是我們習(xí)慣用硬回車的原因:排版方便。 但是硬回車也給我們帶來了麻煩。你如果是網(wǎng)頁設(shè)計(jì)者,
41、或者是論壇游俠,一定有這樣的經(jīng)歷:當(dāng)你打算換行時(shí),換出的行卻實(shí)在不能恭維,行間距太大了!其實(shí)這和硬回車的原理是一樣的,只不過在word等文本編輯器中沒有顯示出它的“本來面目”。不過這樣的排版的確造成了不小的困難,這時(shí)我們就得請(qǐng)出硬回車的兄弟:軟回車。 軟回車只占一個(gè)字節(jié),在word中是一個(gè)向下的箭頭。如果你從很復(fù)雜的網(wǎng)頁中向word中過文字的話,對(duì)它一定不會(huì)陌生。但是想在word中直接輸入軟回車可不是那么容易的。因?yàn)檐浕剀嚥皇钦嬲亩温錁?biāo)記,它只是另起了一行,不是分段。所以它不是很利于文字排版,因?yàn)樗鼰o法作為單獨(dú)的一段被賦予特殊的格式。但是盡管如此,它在網(wǎng)頁設(shè)
42、計(jì)中還是具有舉足輕重的地位的。 軟回車能使前后兩行的行間距大幅度縮小,因?yàn)樗皇嵌温錁?biāo)記,要和法定的段 落標(biāo)記硬回車區(qū)別出來。硬回車的html代碼是<p>.</p>,段落的內(nèi)容就夾在里面,而軟回車的代碼很精悍:<br>。因此在網(wǎng)頁中想用到軟回車,只需切換到代碼頁面,鍵入軟回車的代碼即可。 下面我講一下不同編輯器文字互相拷貝時(shí)回車的轉(zhuǎn)化情況。 地球人都知道的,網(wǎng)頁的文字如果到word中,則硬回車變?yōu)閺澢募^,軟回車變?yōu)橄蛳碌募^。結(jié)果造成習(xí)慣用wo
43、rd編輯文本的朋友很不習(xí)慣很不舒服的情況。 word中的文本到網(wǎng)頁中也是同樣的道理??梢哉fword和網(wǎng)頁比較兼容的,要不怎么會(huì)有“保存為web頁”這種選項(xiàng)呢? 記事本也是大家摸的比較多的編輯器。但是近年來隨著社會(huì)發(fā)展外加記事本的種種弊端,許多人都將其打入冷宮。對(duì)此我只能表示遺憾,因?yàn)橛浭卤颈旧淼墓δ懿回S富就是別的編輯器所取代不了的優(yōu)點(diǎn)。大家再次將網(wǎng)頁的文字時(shí),不妨粘貼到記事本里試試。,不管網(wǎng)頁設(shè)計(jì)者用的是什么回車,現(xiàn)在都變成一種回車了!怎么,你不信?那就看看吧:軟回車變成了普通的回車,硬回車變成了兩個(gè)普通的回車。你再從記事本里
44、文字到word,記事本里的回車無一例外全都變成了硬回車!你再再從記事本里文字到網(wǎng)頁編輯器,所有回車就都變成軟回車了! n是換行,英文是linefeed,ASCII碼是0xA。 r是回車,英文是carriage return ,ASCII碼是0xD。 回車的傳說兼談nr區(qū)別(轉(zhuǎn)載) IT文摘2010-08-31 11:40:24閱讀86評(píng)論0 字號(hào):中訂閱 如果你有在windows下編程的經(jīng)驗(yàn)就會(huì)發(fā)現(xiàn)windows下敲下回車鍵會(huì)產(chǎn)生兩個(gè)字符CR和LF,用16進(jìn)制編輯器打開window
45、s下的文本文件也會(huì)看到換行是0D和0A表示的,也就是CR和LF的ASCII編碼。而在UNIX類系統(tǒng)中換行只有一個(gè)字符LF,所以UNIX中的文本文件在windows中用記事本打開會(huì)出現(xiàn)不可解析字符且丟失換行格式,所有字符連成一行。 因?yàn)閣indows下的記事本讀到LF時(shí)不知道這就是換行(只有CR和LF連續(xù)出現(xiàn)才能解釋為換行),于是當(dāng)作不可打印字符處理,就是一個(gè)黑色方框。CR和LF分別表示“回車”(carriage return)和“換行”(line feed),ASCII編碼為13和10,在C語言中用r和n表示。 為什么windows下要用兩個(gè)字符表示換行
46、?這就是今天要講的故事:回車的傳說 在計(jì)算機(jī)剛剛誕生之時(shí),廣泛使用Teletype公司制造的一種古老的終端(console terminal)電傳打字機(jī)ASR33。ASR33每秒鐘可以打10個(gè)字符。但是它有一個(gè)問題,就是打完一行換行的時(shí)候,打印頭從行尾移到行首再下移一行要 > 本站內(nèi)容系網(wǎng)友提交或本網(wǎng)編輯轉(zhuǎn)載,其目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除內(nèi)容!相關(guān)文章· 轉(zhuǎn)載 C+中回車換行nr和換行(r)的區(qū)別·原文: <iostream> usingnamespace std; int main() cout <& .·· C+中回車換行nr和換行(r)的區(qū)別·windows下的點(diǎn)一下回車,效果是:回車換行,就是rn unix系統(tǒng)下的回車一下就是一個(gè)n 給出如下代碼: #include <iostream> using namespace std; int main() cout << "this is the first linen" cout &l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公共設(shè)施窗簾清洗消毒服務(wù)合同范本3篇
- 2024版汽車檢測(cè)臺(tái)租賃合同
- 2024石材外墻干掛勞務(wù)服務(wù)合同標(biāo)準(zhǔn)版6篇
- 2025年度特色飲品店門面房租賃及新品研發(fā)合同3篇
- 2025年度圓形冷卻塔能源管理服務(wù)合同4篇
- 2024版基礎(chǔ)建設(shè)融資借款協(xié)議模板版
- 2025年度水電工程質(zhì)保期服務(wù)合同4篇
- 2025年度學(xué)校圖書館窗簾升級(jí)改造合同4篇
- 2025年度生態(tài)修復(fù)工程承包樹木合同協(xié)議書4篇
- 2024石材行業(yè)品牌推廣與營銷合同3篇
- 領(lǐng)導(dǎo)溝通的藝術(shù)
- 發(fā)生用藥錯(cuò)誤應(yīng)急預(yù)案
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報(bào)告
- 綠色貸款培訓(xùn)課件
- 大學(xué)生預(yù)征對(duì)象登記表(樣表)
- 主管部門審核意見三篇
- 初中數(shù)學(xué)校本教材(完整版)
- 父母教育方式對(duì)幼兒社會(huì)性發(fā)展影響的研究
- 新課標(biāo)人教版數(shù)學(xué)三年級(jí)上冊(cè)第八單元《分?jǐn)?shù)的初步認(rèn)識(shí)》教材解讀
- (人教版2019)數(shù)學(xué)必修第一冊(cè) 第三章 函數(shù)的概念與性質(zhì) 復(fù)習(xí)課件
- 重慶市銅梁區(qū)2024屆數(shù)學(xué)八上期末檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論