我這兒說得是寫入與讀出時,位元組的次序問題。
比如說 int num=10000;
其十六進製制應為:
00 00 27 10
但使用ofstream寫入到檔案的結果卻是:
10 27 00 00
位元組次序相反。
如果把這個結果讀出,仍然能夠正確得出10,000。也就是說,如果乙個資料是自己寫入,自己讀出,沒有問題
我以前都這樣,或者別人的資料也是使用這種方式寫入的。
但是這次,我碰到了問題,在分析檔案後發現,這檔案中的二進位制是能直接轉換為對應十進位制的,也就是說,資料是10,000
,檔案中的十六進製制是00 00 27 10
這樣使用ofsteam直接讀出的資料就是270,991,360,二進位制就是10 27 00 00
也就是說這個次序要注意
這個問題應該跟計算機硬體有關,intel機與某些的非intel機的位元組讀寫次序不同
而我使用的那個資料庫就不是intel下產生的
在這兒提醒一下,操作二進位制檔案前,如果有讀寫非位元組型別資料的,最好先看一下檔案的資料字節序
c 二進位制檔案的讀寫操作
相比於普通的文字檔案,二進位制檔案的以位元組為儲存單位多出了許多優點,下面是有關二進位制檔案的讀寫操作。主要用到兩個函式,在標頭檔案fstream中。讀read,寫write。下面詳情。一 寫操作。ofstream write char buffer,int length buffer是變數指標,一...
二進位制檔案的讀寫操作
二進位制檔案不是以 ascii 存放資料的,它將記憶體中資料儲存形式不加轉換地傳送到 磁碟檔案,因此它又稱為記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組 中的二進位制形式的資訊,因此它又稱為位元組檔案。對二進位制檔案的操作需要先開啟檔案,用完後要關閉檔案。在開啟時要用 ios bi...
C 讀寫二進位制檔案
摘要 使用c 讀寫二進位制檔案,在開發中操作的比較頻繁,今天有幸找到一篇文章,遂進行了一些試驗,並進行了部分的總結。使用c 操作檔案,是研發過程中比較頻繁的,因此進行必要的總結和封裝還是十分有用的。今天在網上找到一篇,遂進行了部分的試驗,以記之,備後用。include 寫二進位制檔案 寫二進位制檔案...