int counter = 0;
FILE* inptr = fopen("card.raw", "r");
BYTE compare[512];
fread(&compare, 512, 1, inptr);
while (!feof(inptr)) {
if ((compare[0] == 0xff) && (compare[1] == 0xd8) && (compare[2] == 0xff) && (compare[3] == 0xe0 || compare[3] == 0xe1)) {
char filename[9];
sprintf(filename, "%03d.jpg", counter);
FILE* outptr = fopen(filename,"w");
do {
fwrite(&compare, 512, 1, outptr);
fread(&compare, 512, 1, inptr);
}
while ((compare[0] != 0xff) || (compare[1] != 0xd8) || (compare[2] != 0xff) || (compare[3] != 0xe0 && compare[3] != 0xe1));
fclose(outptr);
if (counter == 20) {
return 1;
}
counter++;
}
else {
fread(&compare, 512, 1, inptr);
}
}
fclose(inptr);
return 0;
For some reason, the program isn't ending. Any help appreciated.