J'ai un fichier dans lequel je suis en train de regarder cette séquence d'octets: 0xFF, 0xD8, 0xFF, et 0xE0. Pour l'instant, supposons que je suis seulement à la recherche de 0xFF. J'ai fait ce programme pour les tests:
#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);
}
Ce n'est pas de travail. Quand je l'appelle analyzeFile avec le paramètre "test.txt", il imprime le contenu du fichier fines, mais ne détecte pas un seul octet 0xFF:
contenu de test.txt:
aÿØÿÿà1234
sortie:
aÿØÿÿà1234
0
pour référence, 0xFF est équivalent à y tréma, ÿ, selon ASCII.
(char)bytes
en tant que paramètre àprintf
inutile? Il obtiendra coulé retour àint
par le défaut des promotions.