c语言中换行符与回车符的区别,C语言中换行符与回车符的区别
本文章詳細(xì)介紹了回車與換行符的由來(lái)和區(qū)別。講解,通俗易懂,可以使自己深入理解它們
C語(yǔ)言中換行符與回車符的區(qū)別
能不能說(shuō)“換行符就是輸入完一行內(nèi)容后,光標(biāo)轉(zhuǎn)到下一行的起始位置”,而“回車符就是輸入完一行后光標(biāo)轉(zhuǎn)到該行的起始位置,其并不換行”?如果是,那我們平時(shí)在鍵盤上用的 Enter 和 Tab 又屬于什么符呢???
你說(shuō)的沒錯(cuò),換行(\n)就是光標(biāo)下移一行卻不會(huì)移到這一行的開頭,回車(\r)就是回到當(dāng)前行的開頭卻不向下移一行.Enter鍵按下后會(huì)執(zhí)行\(zhòng)n\r這樣就是我們看到的一般意義的回車了,所以你用16進(jìn)制文件查看方式看一個(gè)文本,就會(huì)在行尾發(fā)現(xiàn)"\n\r"Tab是制表符,就是"\t",作用是預(yù)留8個(gè)
字符的顯示寬度,用于對(duì)齊。
在計(jì)算機(jī)還沒有出現(xiàn)之前,有一種叫做電傳打字機(jī)(Teletype Model 33)的玩意,每秒鐘可以打10個(gè)字符。但是它有一個(gè)問(wèn)題,就是打完一行換行的時(shí)候,要用去0.2秒,正好可以打兩個(gè)字符。要是在這0.2秒里面,又有新的字符傳過(guò)來(lái),那么這個(gè)字符將丟失。于是,研制人
員想了個(gè)辦法解決這個(gè)問(wèn)題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做“換行”,告訴打字機(jī)把紙向下移一行。這就是“換行”和“回車”的來(lái)歷,從它們的英語(yǔ)名字上也可以看出一二。后來(lái),計(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é)尾是“”,即“\n\r”;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(換行)
在C語(yǔ)言中
將 \n 存入文件
window: 0d 0a
總結(jié)
以上是生活随笔為你收集整理的c语言中换行符与回车符的区别,C语言中换行符与回车符的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 那些年淘汰的控件留下的坑!CrossWa
- 下一篇: Linux Huge page