Tengo un archivo en el que estoy tratando de buscar para esta secuencia de bytes: 0xFF, 0xD8, 0xFF, y 0xE0. Por ahora, supongamos que yo sólo estoy buscando 0xFF. Hice este programa para las pruebas:
#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);
}
Esto no está funcionando. Cuando llamo analyzeFile con el parámetro "test.txt", imprime el contenido del archivo a salir bien, pero no detecta una sola 0xFF byte:
contenido de test.txt:
aÿØÿÿà1234
salida:
aÿØÿÿà1234
0
para referencia, 0xFF es equivalente a y con diéresis, ÿ, de acuerdo a ASCII.
(char)bytes
como un parámetro paraprintf
inútil? Será precedida de vuelta aint
por defecto promociones.