非常に単純な質問があります。バイナリファイルを使って作業するのはこれが初めてであり、私にはそれらが完全に理解されていません。私がやりたいのは、バイナリファイルに整数を書き込むことだけです。
ここに私がそれをした方法があります:
#include <fstream>
using namespace std;
int main () {
int num=162;
ofstream file ("file.bin", ios::binary);
file.write ((char *)&num, sizeof(num));
file.close ();
return 0;
}
私が何か間違ったことをしたかどうか教えていただけますか?
問題を引き起こしているのは、file.writeの行です。理解できません。
前もって感謝します。
問題を引き起こしているのは、file.writeの行です。理解できません。
ofstream.write()
メソッドのドキュメントを読むと、2つの引数を要求していることがわかります。
a データのブロックへのポインター書き込む内容。
このブロックのバイト単位のサイズを表す整数値。
このステートメントは、次の2つの情報をofstream.write()
に提供します。
_file.write(reinterpret_cast<const char *>(&num), sizeof(num));
_
_&num
_はデータブロックのアドレス(この場合は整数変数)で、sizeof(num)
はこのブロックのサイズ(Windowsプラットフォームでは4バイトなど)です。