Wenn Sie nur ASCII-Zeichen in eine Datei schreiben, wird es möglich sein, sie im Editor zu öffnen oder einem anderen Texteditor ganz gut:
:
local out = io.open("file.bin", "wb")
local str = string.char(72,101,108,108,111,10) -- "Hello\n"
out:write(str)
out:close()
Die resultierende Datei enthält
Hello
Auf der anderen Seite, wenn Sie echte Binärdaten (für Bytes Zufall Instanz) schreiben Sie Müll bekommen:
local out = io.open("file.bin", "wb")
local t = {}
for i=1,1000 do t[i] = math.random(0,255) end
local str = string.char(unpack(t))
out:write(str)
out:close()
Dies ist vergleichbar mit den Videospiel speichern Dateien, die Sie gesehen haben.
Wenn Sie es noch nicht erhalten, versuchen alle möglichen Oktetts in eine Datei zu schreiben:
local out = io.open("file.bin", "wb")
local t = {}
for i=0,255 do t[i+1] = i end
local str = string.char(unpack(t))
out:write(str)
out:close()
und dann öffnen mit einem Hex-Editor (hier verwendete ich Hex Fiend auf Mac OS) zu sehen, um die Korrespondenzen:
hier auf der linken Seite, um die Bytes in hexadezimale haben und auf der rechten Seite Sie ihre Textdarstellung haben. Ich habe Großbuchstaben H ausgewählt, die, wie Sie auf der linken Seite sehen, 0x48 entspricht. 0x48 ist 4 * 16 + 8 = 72 in der Basis 10 (schau dir die untere Leiste des Screenshots an, die dir das sagt).
Nun ein Blick auf meine erste Codebeispiel und erraten, was der Code für Klein e ist ...
Und schließlich Blick auf die vier letzten Zeilen der Screenshot (Bytes 128 bis 255). Das ist der Müll, den du gesehen hast.
Eine Textdatei * ist * eine Art von Binär-Datei. – greatwolf
Wahrscheinlich kann das Lesen/Schreiben von Textdateien, die ohne 'b' Option geöffnet wurden, bei' '\ x1A'' Zeichen enden. Um dies zu vermeiden, wurde die Option "b" eingeführt. –
http://www.cplusplus.com/forum/general/33808/ Der zweite Beitrag in diesem Artikel klärte für mich auf. In meiner C++ - Klasse wurde uns beigebracht, dass binäre Dateien völlig getrennte Dinge sind, die für Menschen unlesbar sein sollen, so dass ich ziemlich verwirrt war, als ich es richtig mit dem Notizblock lesen konnte.Das heißt, wenn Sie die binären Speicherdateien der meisten Spiele öffnen, wird es als völlig unkenntlich Müll angezeigt, so dass ich nicht helfen kann, aber ich habe das Gefühl, dass etwas fehlt. –