Hex-Datei Auslesen in C-Programmierung?

Ich hatte eine Frage:

Ich Schreibe ein c-Programm, dass funktioniert ähnlich wie ein hex-editor. Ich möchte in einer Datei und zeigen Sie die entsprechenden hexadezimalen Werte. Zum Beispiel, sagen, ich hatte die text-Datei "helloworld.txt" das hatte einfach den Text "Hello World!" in es, ich will angeben, um das Programm zu nehmen, die Datei, Lesen der hexadezimalen Werte (einmal die Datei ist eine einfache .txt-Datei und nicht eine binäre Datei) und speichern Sie in einem array für später.

Hier ist was ich habe, so weit:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char ch, file_name[25];
   FILE *fp;

   printf("Enter the name of file you wish to see\n");
   gets(file_name);

   fp = fopen(file_name,"rb"); //read binary mode

   if( fp == NULL ) //error checking
   {
      perror("Error while opening the file.\n");
      exit(EXIT_FAILURE);
   }

   printf("The contents of %s file are :\n", file_name);

   while( ( ch = fgetc(fp) ) != EOF )
      printf("%c",ch);

   fclose(fp);
   return 0;
}

Wie Sie sehen können ist dies wirklich nur eine einfache Datei, read-und print-Inhalte. Das problem ist jedoch, dass, obwohl ich in der "read binary" - Modus, es wird nicht geben Sie mir die hexadezimalen Werte der text-Datei.

Wie kann ich Struktur in diesem Programm, so dass es liest die hexadezimalen Werte eines standard-text-Datei und entweder (a) legt Sie in einem array (was ich denke, sollte einfach genug sein mit einer for-Schleife) oder (b), druckt Sie aus, um den Bildschirm?

Ich habe versucht, zu googeln, um zu sehen, wenn andere versuchten, das gleiche zu tun, aber die Leute waren entweder bereits das Lesen aus einer Binärdatei oder schon hexadezimalen Werte in der Datei. Ich habe nur-text in einem regelmäßigen .txt-Datei, aber ich möchte die hexadezimalen Werte darunter (in anderen Worten eine Art hexdump der Datei). Ich hoffe, dass meine Frage und was ich versuche zu tun, macht Sinn. Wenn Sie Fragen haben, bitte fühlen Sie sich frei, mich wissen zu lassen! Vielen Dank im Voraus für Ihre Hilfe! Ich Schätze es wirklich tun!

  • Nie verwenden wird().
  • Und...es ist nur eine Frage der Darstellung, Sie printf("%c", ch);, so erhalten Sie das char-format; gefällt printf("%02X", ch); erhalten Sie als hex-Wert.
Schreibe einen Kommentar