Slik leser Hex filer i C ++

En hex fil er en datafil som inneholder informasjon som er kodet i heksadesimale sifre. Det tar fire biter til å representere en enkelt heksadesimale tall, så leser en hex-fil ved å bruke den minste datatype tilgjengelig i C ++, røye, innebærer å lese to heksadesimale sifre om gangen. Isolere disse tallene med bit-nivå operasjoner for å analysere gjennom en hex-fil ett siffer om gangen.

Bruksanvisning

1 Inkludere "iostream" og "fstream" overskrifter ved å plassere følgende linjer med kode på toppen av C ++ kildefilen:

inkluderer <iostream> inkluder <fstream>

2 Lag en "ifstream" objekt i "main" funksjon eller en annen blokk med kode med følgende linje:

ifstream inndatafil;

3 Åpne en fil ved å bruke "åpne" metoden for "ifstream" objekt, angi sitt navn som argument:

inputfile.open ( «hexfile.dat");

Inkluder den fullstendige banen til og navnet på filen for å åpne bruke doble omvendte skråstreker (for eksempel "C: \ Users \ ...") hvis filen ikke vil ligge i samme katalog som kjørbar.

4 Lag to variabler å holde hvert par av heksadesimale sifre som de er trukket inn fra filen:

unsigned char h, l;

5 Start en "mens" loop:

while (1) {

6 Bruk operatør ">>" for å lese en byte fra filen og lagre den i "h:"

inndatafil >> h;

7 Skill de to heksadesimale sifre i "h" med følgende to linjer:

l = h & 0x0f;

h >> = 4;

Etter disse uttalelsene "h" inneholder det første tallet og "l" den andre.

8 Sjekk om slutten av filen er nådd (eller hvis filen er uleselig eller annen grunn), avslutter løkken og lukke filen hvis den har:

hvis {break; inputfile.close ();} (inputfile.good (!))

9 Skriv kode for å håndtere de heksadesimale sifre som de er tatt i følgende linjer bare utgang dem som heksadesimale sifrene til standard konsollen.:

cout << hex << (unsigned int) h << "";

cout << hex << (unsigned int) l << "";

10 Lukk "mens" loop:

};