000
18.05.2007, 13:36 Uhr
~me1234
Gast
|
Hallo,
ich habe eine Bilddatei und lese sie ein sie hat run 122000 bytes
C++: |
fseek(inFile, 0, SEEK_END); fileSize = ftell(inFile); fseek(inFile, 0, SEEK_SET);
buffer = (char*)malloc(fileSize + 1); memset(buffer, 0, fileSize);
if (fileSize != fread(buffer, sizeof(char), fileSize, inFile)) { free(buffer); return -2; }
iPos = 0; while(*buffer) {
char tmp = *buffer;
printf("%c\n", tmp);
buffer++; iPos++; }
printf("iPos: %i", iPos);
|
Das tut auch alles bis auf das in der while Schleife nur 3 chars ausgegeben werden iPos ist am Ende auch nur 3.
Das 4. Byte ist 0x20 (NUL)
Ich würde in der while Schleife gerne das ganze File durchgehen und nicht nur bis zum ersten (0x20).
Hab ich da einen komplett falschen Ansatz oder gibts einen Trick? Eventuell ist es eh anderst zu lösen darum schildere ich was ich will, möchte da Bereiche herausholen z.B an Stelle 50 steht in Dezimal 155, nun muss ich ab byte 155, 12 bytes in einen Buffer schreiben (ein IFD eines Tiff File ist 12 byte lang, es geht hier um Tiff Files). |