Am un dosar în care încerc să arăt pentru această secvență de octeți: 0xFF, 0xD8, 0xFF, și 0xE0. Acum, să presupunem că sunt doar în căutarea pentru 0xFF. Am făcut acest program pentru testare:
#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);
}
Acest lucru nu este de lucru. Când m-am apel analyzeFile cu parametru "test.txt", se imprimă conținutul fișierului bine, dar nu detecta o singură 0xFF octet:
conținutul de test.txt:
aÿØÿÿà1234
ieșire:
aÿØÿÿà1234
0
pentru referință, 0xFF este echivalent cu y-diaeresis, ÿ, potrivit ASCII.
(char)bytes
ca un parametru pentru aprintf
inutil? Acesta va fi turnat înapoi laint
implicit promotii.