Announcement

Collapse
No announcement yet.

Fehler bei öffnen von Binärdatein

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler bei öffnen von Binärdatein

    Hallo ich möchte ein Binäre Datei auslesen. Der Compiler meldet keine Fehlermeldung doch wenn ich das Programm laufen lasse stürzt es ab.

    hier der code:

    char* P1;
    fstream file;
    file.open("c:\\file.bin", ios::in | ios::binary);
    file.read(reinterpret_cast<char*>(&P1), sizeof(P1));

  • #2
    Du hat einen Zeiger P1 definiert.

    Dann willst du einen Wert aus der Datei an die Adresse des Zeigers lesen??

    http://www.willemer.de/informatik/cpp/fileop.htm
    Christian

    Comment


    • #3
      File binär einlesen

      Hallo

      Ich nehme an Du willst die Datei Zeichen für Zeichen binär einlesen.
      Dann würde folgender Code funktionieren:

      Code:
      std::fstream fs("test.bin", std::ios::in | std::ios::binary);
      if (fs.is_open())
      {
      	char ch;
      	while(fs.read(&ch, sizeof(ch)))
      	{
      		// use 'ch'
      	}
      	fs.close();
      }
      Der Methode 'read' musst Du eine Adresse übergeben (&ch) an dem sich Speicherplatz befindet (ch).

      Vorsicht mit dem reinterpret_cast, denn die Art von cast, macht ohne Prüfung aus allem das was Du wünschst. Das gibt Probleme wenn es nicht passt.
      Eigentlich passiert in deinem Bsp. folgedens mit dem Pointer P1:
      char* P1;
      char** PP1 = &P1;
      char* P = reinterpret_cast<char*>(PP1);
      Und das ist wahrscheinlich nicht das was Du beabsichtigt hast.

      Gruss Simon

      Comment

      Working...
      X