Hallo,
Ich schreibe an einem Komprimierungsprogramm mit MVC++ und habe ein paar Fragen zu fread und fwrite.
Eine Datei soll folgendermaßen aussehn:
Größe des folgenden Datenblocks (unsigned int)
Datenblock mit der obrigen Größe
Größe des folgenden Datenblocks (unsigned int)
Datenblock mit der obrigen Größe
...
Eine Variable vom Typ (unsigned long) muss also in die Datei geschrieben werden, wie macht man das?
Ausgabe:
Kann mir bitte jemand helfen?
mfg. Poseidon
Ich schreibe an einem Komprimierungsprogramm mit MVC++ und habe ein paar Fragen zu fread und fwrite.
Eine Datei soll folgendermaßen aussehn:
Größe des folgenden Datenblocks (unsigned int)
Datenblock mit der obrigen Größe
Größe des folgenden Datenblocks (unsigned int)
Datenblock mit der obrigen Größe
...
Eine Variable vom Typ (unsigned long) muss also in die Datei geschrieben werden, wie macht man das?
Code:
unsigned long i=11,z;
char a[11]="Datenblock",b[11];
FILE*f;
f=fopen("datei.dat","wb");//öffnen der Datei im binären Schreibmodus
fwrite(&i,1,sizeof(unsigned long),f);//Schreibe Variable i in die Datei
fwrite(&a,1,11,f);//Schreibe den Datenblock in die Datei
fseek(f,0,0);//Dateipointer zum Lesen auf Anfang setzen
fread(&z,1,sizeof(unsigned long),f);//Lies von der Datei die vorherige Variable i auf Variable z ein
printf("z=%d\n",z);//Ausgabe: z sollte dann (11ul) ergeben, bekomme irgendeine Speicheraddresse
fread(&b,1,z,f);//Lies den Datenblock aus der Datei auf Variable b ein
printf("%s",b);//Hier kommen fast das Richtige heraus
fclose(f);
Ausgabe:

Kann mir bitte jemand helfen?
mfg. Poseidon