Запись целого в двоичный файл (С++)

У меня очень простой вопрос, который бывает для меня трудным, так как это первый раз, когда я пытался работать с двоичными файлами, и я не совсем понимаю их. Все, что я хочу сделать, это записать целое число в двоичный файл.

Вот как я это сделал:

#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;
}

Не могли бы вы сказать мне, что я сделал что-то не так, и что?

Часть, которая вызывает у меня проблемы, связана с файлом .write, я этого не понимаю.

Спасибо заранее.

Ответ 1

Часть, которая вызывает у меня проблемы, это строка с файлом .write, я не понимайте это.

Если вы прочитали документацию по методу ofstream.write(), вы увидите, что он запрашивает два аргумента:

  • a указатель на блок данных с содержимым, которое должно быть записано;

  • целочисленное значение, представляющее размер в байтах этого блока.

Это утверждение просто дает эти две части информации ofstream.write():

file.write(reinterpret_cast<const char *>(&num), sizeof(num));

&num - это адрес блока данных (в данном случае только целочисленная переменная), sizeof(num) - размер этого блока (например, 4 байта на платформах Windows).