Hat jemand ein Beispiel für Code, der in eine Binärdatei schreiben kann. Und auch Code, der eine Binärdatei lesen und auf dem Bildschirm ausgeben kann. Wenn ich Beispiele anschaue, kann ich in eine Datei schreiben. Aber wenn ich versuche, von einer Datei zu lesen, wird sie nicht korrekt ausgegeben.Lesen/Schreiben in Binärdateien in C
Antwort
Lesen und binäre Dateien zu schreiben ist so ziemlich das gleiche wie jede andere Datei, der einzige Unterschied ist, wie Sie es öffnen:
unsigned char buffer[10];
FILE *ptr;
ptr = fopen("test.bin","rb"); // r for read, b for binary
fread(buffer,sizeof(buffer),1,ptr); // read 10 bytes to our buffer
Sie sagten, Sie es lesen kann, aber es ist nicht richtig ausgibt ... bedenken Sie, dass, wenn Sie „Ausgang“ diese Daten, sind Sie nicht ASCII zu lesen, so dass er einen String auf den Bildschirm aus ist nicht, wie:
for(int i = 0; i<10; i++)
printf("%u ", buffer[i]); // prints a series of bytes
in eine Datei zu schreiben, ist so ziemlich die gleiche, mit der Ausnahme, dass Sie fwrite()
anstelle vonverwenden:
FILE *write_ptr;
write_ptr = fopen("test.bin","wb"); // w for write, b for binary
fwrite(buffer,sizeof(buffer),1,write_ptr); // write 10 bytes from our buffer
Da wir Linux reden .. gibt es eine einfache Möglichkeit, eine Plausibilitätsprüfung zu tun. Installieren Sie hexdump
auf Ihrem System (wenn es dort nicht schon ist) und Dump-Dateien:
[email protected]:~/C$ hexdump test.bin
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0001 003e 0001 0000 0000 0000 0000 0000
...
Jetzt vergleichen Sie das mit Ihrer Ausgabe:
[email protected]:~/C$ ./a.out
127 69 76 70 2 1 1 0 0 0
hmm, vielleicht die printf
ein %x
ändern zu machen dies ein wenig klarer:
[email protected]:~/C$ ./a.out
7F 45 4C 46 2 1 1 0 0 0
Hey, schau! Die Daten entsprechen jetzt *. Super, wir müssen die Binärdatei korrekt lesen!
* Anmerkung werden die Bytes nur auf den Ausgang vertauscht aber, dass die Daten korrekt sind, können Sie für diese Art der Sache anpassen
ich weiß, ist alt, aber es gibt einige Fragen, die ich machen muss: "// schreibe 10 Bytes in unseren Puffer" bedeutet, dass speichert, was in Ihrem Puffer in Ihrer Datei ist? – Gaunt
@Gaunt - Ja, ich hätte "von" sagen sollen, um das klarer zu machen; Das habe ich jetzt behoben. In diesem Beispiel gehe ich davon aus, dass "buffer" existiert und mit einigen Daten gefüllt ist, die in "test.bin" geschrieben werden, wie von 'write_ptr' gezeigt wird. Wenn Sie das ausführen, könnten Sie dann die Datei test.bin "hexdump" und diese Bytes darin sehen. – Mike
Beachten Sie, dass unter Linux (und auf Unix-basierten Systemen im Allgemeinen) das Flag "b" optional ist - auf solchen Systemen wird nicht zwischen einer Binärdatei und einer Textdatei unterschieden. Der Unterschied ist jedoch sehr wichtig für Windows. Wenn Ihr Code Anspruch auf Portabilität hat, fügen Sie 'b' hinzu, wenn Sie die Datei als Binärdatei behandeln. –
- 1. Binärdateien in C++
- 2. C# Laden von Binärdateien
- 3. Wird C# -Code in native Binärdateien kompiliert?
- 4. C Lesen Binärdateien
- 5. Binärdateien in Python Schreiben von
- 6. entfernen Binärdateien in Mercurial
- 7. Speicherzuordnung in C verwenden, um Binärdateien zu lesen
- 8. Erstellen von Delta Diff Patches großer Binärdateien in C#
- 9. Wie funktioniert ios :: trunc in C++ für Binärdateien?
- 10. Laden und Schreiben von Binärdateien mit gtk3 in c
- 11. machen eigenständige Binärdateien in Julia?
- 12. Ausführen * nix-Binärdateien in Python
- 13. Große Binärdateien in Node.js analysieren
- 14. Verketten von BitStrings (keine Binärdateien) in Erlang
- 15. Kann Binärdateien in .net-Kern nicht veröffentlichen
- 16. Automake- Binärdateien ist Erzeugen/statt in src/
- 17. Wie lese ich mehrere Binärdateien in R?
- 18. Schreiben Sie cv :: Mat in Binärdateien?
- 19. Binärdateien zusammenführen
- 20. Wie lese ich mehrere Binärdateien in verschiedenen Ordnern in R?
- 21. Ein Java-Programm zum Suchen in Binärdateien
- 22. Tragbare Binärdateien mit Rust
- 23. Website-Binärdateien in asp.net Website-Projekt?
- 24. Wie kompiliere Schema in native Binärdateien?
- 25. Fehlende Binärdateien in Nservicebus 3.0 Azure-Beispielprojekte
- 26. Finden Sie passende Sequenzen in zwei Binärdateien
- 27. Aktualisieren von Binärdateien in TFS-Quellcodeverwaltung
- 28. Vorkompilierte Binärdateien in einem Schmuckstück verpacken
- 29. SVN und Binärdateien
- 30. Alle Binärdateien im Ordner
können Sie Ihren Code zeigen? – chrisaycock
Das Internet wird viele Beispiele haben. Wie gibst du die Daten aus? Vielleicht ist das falsch. – doctorlove