1

次のようなコードがあります。

int main () {
  fstream file;
  file.open("test.bin", ios::out | ios::binary);
  if(!file.is_open())
  {
      return -1;
  }
  int n = 3;
  file.write(reinterpret_cast<char*>(&n), sizeof(n));
  file.close();
  return 0;
}

単体で実行すると-1で終了するので、明らかに「test.bin」のオープンに失敗しています。ただし、空白のメモ帳ファイルを「test.bin」として保存して実行すると、正常に動作します。私が疑問に思っているのは、「test.bin」というファイルがまだ存在しない場合に、C++ プログラムに空のファイル「test.bin」を自動的に生成させる方法です。

4

3 に答える 3

2

おそらく、ファイルを開いたり閉じたりするだけでできると思います。

if (GetFileAttributes("test.bin") == INVALID_FILE_ATTRIBUTES)
{
    fstream file;
    file.open("test.bin", ios::out);
    file.close();
}
于 2009-05-26T01:26:44.090 に答える
1

1 つのオプションは、読み取り/書き込み用に開き、ファイルの先頭をシークすることです。

その後、読み書きしたり、好きなことをしたりできます。

于 2009-05-26T01:27:40.003 に答える