Bu bayt dizisini aramaya çalıştığım bir dosyam var: 0xFF, 0xD8, 0xFF ve 0xE0. Şimdilik, sadece 0xff'yi aradığımı varsayalım. Bu programı test için yaptım:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void analyzeFile(char* filename)
{
FILE* filePtr = fopen(filename, "rb");
int numImages = 0;
while (!feof(filePtr))
{
char bytes;
bytes = getc(filePtr);
printf("%c", bytes);
if ((bytes == 0xFF))
{
numImages++;
printf("image found!\n");
}
}
printf("%d\n", numImages);
}
Bu işe yaramıyor. Analyzefile'ı "test" parametresiyle çağırdığımda.txt", dosyanın içeriğini iyi yazdırır, ancak tek bir 0xFF baytı algılamaz:
testin içeriği.txt:
aÿØÿÿà1234
çıktı:
aÿØÿÿà1234
0
başvuru için 0xFF, ASCII'YE göre y-diaeresis'e eşdeğerdir.
(char)bytes
bir parametre olarakprintf
işe yaramaz? Geri atılacakint
varsayılan olarak promosyonlar.