c語(yǔ)言二進(jìn)制文件讀取寫(xiě)入 如何用C語(yǔ)言把二進(jìn)制文件轉(zhuǎn)換成文本文件?
如何用C語(yǔ)言把二進(jìn)制文件轉(zhuǎn)換成文本文件?將二進(jìn)制文件轉(zhuǎn)換為文本文件沒(méi)有實(shí)際意義。二進(jìn)制文件和文本文件之間最根本的區(qū)別在于,當(dāng)讀取和寫(xiě)入二進(jìn)制文件時(shí),系統(tǒng)不處理這些文件,程序員處理它們。打開(kāi)文本文件時(shí),
如何用C語(yǔ)言把二進(jìn)制文件轉(zhuǎn)換成文本文件?
將二進(jìn)制文件轉(zhuǎn)換為文本文件沒(méi)有實(shí)際意義。二進(jìn)制文件和文本文件之間最根本的區(qū)別在于,當(dāng)讀取和寫(xiě)入二進(jìn)制文件時(shí),系統(tǒng)不處理這些文件,程序員處理它們。打開(kāi)文本文件時(shí),操作系統(tǒng)會(huì)將Rn中的文件轉(zhuǎn)換為n中的C語(yǔ)言,只有n用于編寫(xiě)程序換行符,但在Windows操作系統(tǒng)中,換行符是Rn,即兩個(gè)字和字節(jié)。如果不做任何處理,fgetc()=“n”遇到這樣的語(yǔ)句時(shí)會(huì)出現(xiàn)一些小錯(cuò)誤,導(dǎo)致文件讀寫(xiě)失敗。因此,在讀取時(shí),系統(tǒng)會(huì)自動(dòng)將文件中的Rn改為n,至于為什么使用C語(yǔ)言n而使用windows Rn,這是因?yàn)長(zhǎng)inux系統(tǒng)首先使用C語(yǔ)言,而Linux只使用換行符n,所以為了使代碼更具可移植性,程序員在windows下編寫(xiě)C程序時(shí)不必注意這些細(xì)節(jié)
C語(yǔ)言中二進(jìn)制文件的讀取應(yīng)該通過(guò)freead和fwrite來(lái)實(shí)現(xiàn)。Fwrite()與fprintf()不同。Fwrite將寫(xiě)入的數(shù)據(jù)保存為文件的磁盤(pán)內(nèi)容。Fprintf將與寫(xiě)入數(shù)據(jù)的每個(gè)字符對(duì)應(yīng)的ASCII代碼保存為文件的磁盤(pán)內(nèi)容。Fprintf進(jìn)行轉(zhuǎn)換。
c語(yǔ)言怎么用二進(jìn)制方式讀取文件?
如果使用RB打開(kāi)文件,則無(wú)法寫(xiě)入。您可以使用RB或ab,如果是在末尾添加,建議使用ab,如果有修改或刪除,即存儲(chǔ)后文件大小可能會(huì)減小,建議先打開(kāi)RB,讀取內(nèi)存,修改后再打開(kāi)WB寫(xiě)入。如果是在某個(gè)位置修改,但總大小不變,則使用ab Open,查找到修改的位置,寫(xiě)入修改的內(nèi)容,關(guān)閉??傊?,要根據(jù)自己的實(shí)際情況選擇最合適的方式。最常見(jiàn)的是RB讀取,內(nèi)存修改,然后WB重新打開(kāi),全部寫(xiě)入。適用于所有情況,但效率低,資源消耗高