C言語なら俺に聞け! Part 93
■ このスレッドは過去ログ倉庫に格納されています
0376デフォルトの名無しさん
NGNGunsigned int readBuffer = 0;
unsigned char code = 0;
int counter;
fp = fopen(filename,"rb");
for (counter = 0; counter < 4; counter++) {
fread(code, 1, 1, fp);
readBuffer |= (code << 24 - (8 * counter));
}
//75 75 69 64 を見つけるまで続ける。
while (readBuffer != 0x4b4b4540) {
fread(code, 1, 1, fp);
readBuffer <<= 8;
readBuffer |= code;
}
fread(code, 1, 1, fp);
これで操作したい1バイトの情報が code に格納されてるはず。バイナリファイル
を扱うなら fread() とビット演算を覚えた方がいいと思う。それで1バイトずつ
の操作ならできるようになるから。1ビット単位で扱う場合は
unsigned int readBuffer[2] = { 0, 0};
int bit_count[2] = { 0, 0};
といったような工夫も必要になってくるけど。あくまで一例だけどね。
* fread(code, 1 , 1, fp); //fpのファイルから1バイト×1要素をcodeに格能
■ このスレッドは過去ログ倉庫に格納されています