Я использую эту функцию для записи двоичных файлов:ostream :: запись - Что происходит, когда мой streamsize меньше, чем мой полукокс
ostream& write (const char* s, streamsize n);
мне интересно, что происходит, когда мой streamsize п меньше мой s. Мой исходный код выглядит примерно так:
int new_number = 10;
out.write((char*) &new_number, sizeof (new_number));
Можете ли вы предсказать, что произойдет, когда я изменить его на:
int new_number = 10;
out.write((char*) &new_number, 2);
ли возможный способ сэкономить дисковое пространство? Извините, я забыл упомянуть, что хочу сохранить 24-битное целое число.
_ «Это возможный способ сохранить дисковое пространство?» _ Нет! Если вы хотите сэкономить дисковое пространство_, используйте другой тип номера, например, например. 'Short'. –
Он напишет два младших байта двоичного представления 'new_number'. Поскольку двоичное представление определено реализацией, результаты являются непредсказуемыми, технически говорящими. На типичной двухконечной двухкомпонентной машине это будет эквивалентно 'int16_t temp = static_cast (new_number); out.write ((char *) & temp, sizeof (temp)); ' –
Извините, я забыл упомянуть, что хочу сохранить 24-битное целое число. Но для этого нет типа данных – Birdperson