バイナリファイルから読み書きしようとしています。私はthisチュートリアルに従ってきました、そして、それは... txtファイルに物事を書いているようであることを除いて動作します。テスト時にtest.binというファイルに名前を付けましたが、メモ帳でそれを開いて適切に表示できるので、実際にはバイナリファイルだとは思いません。私はそれが "wb"と "rb"の権利を持つバイナリファイルだと言ってきましたか?バイナリファイルを読み書きする
if arg[1] == "write" then
local output = assert(io.open(arg[2], "wb"))
output:write(arg[3]) --3rd argument is written to the file.
assert(output:close())
elseif arg[1] == "read" then
local input = assert(io.open(arg[2], "rb"))
print(input:read(1)) --Should read one byte, not one char/int. Right?
end
文字列を得ました。 – greatwolf
おそらく、 'b'オプションなしでオープンされたテキストファイルを読み書きすることは' \ x1A ''charで止めることができます。これを避けるために、オプション 'b'が導入されました。 –
http://www.cplusplus.com/forum/general/33808/この2番目の投稿は私のために明確になっています。私のC++クラスでは、バイナリファイルは完全に別のもので人間には読めないということを教えていたので、メモ帳で正しく読むことができたときに混乱しました。つまり、ほとんどのゲームのバイナリセーブファイルを開くと、認識できない完全なガベージとして表示されるので、紛失しているような気がします。 –