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 次方,其和相加之和便是相應的十進位制數。個位,...