2013-05-04 66 views
0

我需要爲每一步讀取256位,直到二進制文件結束爲止。是否有任何操作在c中逐位讀取?我使用fread函數並讀取32個字符。對於所有字符,我一點一點地移動了8次。在讀完之後,將這256位寫入文件。我有同樣的事情要寫嗎?我的意思是寫32字符=> 32 * 8 = 256位。從二進制文件中逐位讀取C

+0

你可以逐字節寫入。但是磁盤驅動器在計算機中是最慢的,所以你需要立即寫一堆來加速。小文件通常不是問題,但是當你編寫大量數據時,應該考慮這個問題 – 2014-01-23 08:33:43

回答

3

不,您可以讀取或寫入的最小項是char(並且請記住,這不是必須是 8位,它取決於實現)。如果你想操縱char一旦你在內存擁有它,你就需要使用bitwise operators SICH爲&|<<>>andorleft/right shift)。

是的,你可以做fwrite寫入任意數量的字符(與使用fread來讀取它們的方式相同)。

+0

我還有一個問題:D我有一個32字節的數組,所以它是256位。我需要旋轉左側。如果它是000111,它應該是001110.我該怎麼做?因爲我沒有這些位,所以只有char數組。 – user1334254 2013-05-04 08:44:30