Mám súbor, v ktorom sa snažím hľadať táto postupnosť bajtov: 0xFF, 0xD8, 0xFF, a 0xE0. Teraz, povedzme, ja som len hľadáte 0xFF. Urobil som tento program na testovanie:
#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);
}
To nefunguje. Keď som hovor analyzeFile s parametrom "test.txt" to vypíše obsah súboru jemné, ale nerozpozná jednu 0xFF byte:
obsah test.txt:
aÿØÿÿà1234
výstup:
aÿØÿÿà1234
0
pre odkaz, 0xFF je ekvivalent y-diaeresis, ÿ podľa ASCII.
(char)bytes
ako parameterprintf
k ničomu? Bude si odliatok späťint
podľa predvoleného nastavenia propagačné akcie.