如何給乙個二進位檔案頭加3個位元組,而不破壞後面內容

2025-01-24 09:05:20 字數 1852 閱讀 9640

1樓:大愛無疆

方法1:先預留(佔位)3個位元組,最後更新這三個位元組;

方法2:新建一檔案,寫入3個位元組,然後讀取舊檔案,放入快取中,追加到新檔案後邊,如果檔案大,就分批寫入。

c++寫檔案問題,如何寫檔案的時候,在檔案頭部加入想要的內容而不覆蓋原有位元組?我現在用write不行啊,

2樓:空雪夢見

沒有直接的辦法。

你可以先seek到檔案尾,然後獲取位置(實際上這一步是獲取檔案長度)然後seek到檔案頭,申請和檔案大小相同的記憶體空間,然後把檔案內容全部讀出來。

然後seek到檔案頭,寫入你要寫入的部分。

最後把剛剛「全部讀出來」的給寫回去。

另:如果要用我敘述的方法,以ios::out方式開啟會死看你的**,你是想要把只含有原始畫素點顏色資料的檔案給搞成bmp檔案?w

3樓:

沒有在檔案中插入那種函式,你可以新建乙個檔案先吧檔案頭寫入,在讀出第二個檔案的內容寫入剛才新建的檔案裡面。恩,只能這麼辦!

4樓:

教你個簡單的。

file *file = fopen("d:","at");

fprintf(file,「寫入內容測試」);

fclose(file);

bat指令碼向任意格式的二進位檔案中追加乙個位元組任意資料

5樓:網友

echo a>>file

也只能這麼追加,追加的是97,如果要追加其他數值就看看ascii碼錶。

c語言檔案讀取問題!急急急,**等,高分求救!!! 問題一:c語言如何從乙個二進位檔案中按位元組,注

6樓:網友

二進位檔案與。txt檔案一樣,都沒有專用的檔案結束標誌。讀到檔案尾部時,feof(fp)返回1。

二進位檔案的讀寫是由函式fread()和fwrite()進行的,檔案開啟方式是"rb"、"rb+"或"wb"。

j**a中fileoutputstream流,向檔案中追加內容,而不是覆蓋掉檔案中原有的資料

7樓:網友

好吧,fileoutputstream有3個建構函式。

fileoutputstream(file file);

目的是模擬將乙個bin檔案得內容,放入到乙個儲存結構中,並在這個二進位檔案前面加上乙個資訊頭。

8樓:風若遠去何人留

struct test;//對齊1位元組情況下,結構體6位元組。

你分配的記憶體也就是6+3=9位元組。 這個分配空間是沒初始化的。也就是隨機值。

執行這句之後, 前六個位元組的值就是 'h' '3' 0x7 0x0 0x0 0x0.

而輸出printf("%s", startimage); 會到0結束。所以 只能列印出h3 無法列印出其他的。

偵錯程式對於image的內容顯示的是無效字串 這個是因為沒有合法的結束符。 可以在malloc之後加乙個memset。 或者手動的 startimage[sizeof(struct test) +2] = 0; 新增乙個結束符。

最終 正確的9個位元組值 應該是。

h' '3' 0x7 0x0 0x0 0x0 'f' 'b' 0x00

二進位檔案被分成若干個小檔案,請問如何把他們拼接起來,並且拼接中間不加任何字元,試其可執行呢

9樓:網友

dos環境下直接用copy命令,使用方法:

copy a檔名+b檔名 c檔名。

C語言將某檔案以二進位制形式開啟,二進位制資料存入一維陣列中!急急急

include include int main b int calloc j,sizeof int 分配一維陣列儲存 rewind fp1 for i 0 i 1.fopen函式開啟需要讀取的文字,獲取該檔案的檔案描述符2.使用fscan 函式對檔案進行讀取。3.放到二維陣列其實就是讀取相應格式的...

請問十進位制如何轉換成二進位制,二進位制數如何轉換成十進位制數?

還是寫基數,舉個複雜些的例子,你可以選擇僅涉及整數的部分來用 95.625轉換成二進位制 先寫二進位制各位基數 從1開始寫,右邊寫個小數點,先向左邊逐位寫,每位是右邊位陣列乘以2,寫到比95大為止 128 64 32 16 8 4 2 1.然後向左邊寫,每項是左邊項除以2,寫 三 四項即可 128 ...

二進位制如何轉十六進位制,二進位制轉換成十六進位制計算方法

從末尾開始四個一組變成16進位制就可以了 如 101 1110 1010 0010 16進製為 5 e a 2 1 二進位制數 八進位制數 十六進位制數轉十進位制數 有一個公式 二進位制數 八進位制數 十六進位制數的各位數字分別乖以各自的基數的 n 1 次方,其和相加之和便是相應的十進位制數。個位,...