Schreiben Sie Hex in C (byte)

Ich habe zum schreiben eines Bytes in hex in eine Datei, aber ich habe ein problem. Zum Beispiel.

Wenn ich:

unsigned char a = 0x0;

und ich schreiben in eine Datei mit fwrite:

FILE *fp = fopen("file.txt",wb);
fwrite(&a,sizeof(unsigned char),1,fp);
fclose(fp);

Wenn ich die Datei öffnen, die ich immer sehen, 20h, warum nicht 00h?

So, ich versuche es mal mit:

fprintf(fp,"%x",a);

In diesem Fall sehe ich 0h, aber ich brauche ein volles byte, nicht ein nibble.
Was soll ich tun?

  • Sind Sie versuchen, zu schreiben, ein single-null-byte in der Datei, oder die ASCII-Zeichenfolge "00" oder "00"? Bitte klären Sie Ihre Absicht.
  • Auch, welches tool Sie verwenden, um zu überprüfen, den Inhalt der Datei? Ein hex-editor?
  • Ich möchte schreiben 00h.
  • In diesem Fall fprintf(fp, "%02xh", a); ist, was Sie wollen (im Grunde @entspannen die Antwort, aber mit einem h am Ende).
  • Ich überprüfen Sie mit Notepad++, aber ich download von einem hex-editor und öffnen Sie die Datei mit es und alles ist ok... was ist falsch?
InformationsquelleAutor Alvadorn | 2014-02-10
Schreibe einen Kommentar