PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem beim einlesen einer datei (0x1A)


spunky
21.06.2002, 17:16
mit folgendem code will ich eine datei (8192.hex) in das array "buffer[]" byteweise einlesen, beim einlesen der datei kommt es immer zu einem fehler wenn ich das byte 0x1A einlesen will, aus irgend einem grund kann ich kein 0x1A einlesen, alles was vor 0x1A steht wird richtig eingelesen und alles nach 0x1A wird nur noch als 0xFF eingelesen, was mache ich falsch?

ps: bin c/c++ anfänger, hab von c/c++ nicht viel ahnung...


#include<stdio.h>

void main(int argc,char* argv[])
{

if(argc!=2)
{
argv[1]="8192.hex";
}

unsigned char ch;
unsigned char Buffer[8192];
unsigned int i = 0;

FILE *datei;
datei=fopen(argv[1],"r");
ch = fgetc(datei);
for(i=0; i<8192; i++)
{
Buffer[i] = ch;
ch = fgetc(datei);
}
fclose(datei);

}


Felix Kaiser
21.06.2002, 17:19
Versuchs mal mit dem Zugriffsmodus "rb" für binäre Dateien. Ich denke, er behandelt die Datei als Textdatei, wobei 0x1A (^Z) das Ende der Datei signalisiert (EOF) und nach dem Ende der Datei lesen geht nicht ;) Also versuchs mal binär!

spunky
21.06.2002, 17:36
danke für die schnelle hilfe, auf's einfachste kommt man immer zuletzt...

;)