Конвертировать и сохранить структуру в двоичную форму в C ++ - PullRequest
0 голосов
/ 06 января 2020

Я хочу преобразовать структуру, которая состоит из различных типов данных (long, char [x], char *), в двоичный файл и сохранить в переменной (I не знаю правильный или оптимальный тип данных для этого).

CONVERSION
Для строк: я преобразовал каждый символ в его код ascii, а затем преобразовал код ascii из десятичного в двоичный. Для чисел: я преобразовал число из десятичного в двоичное.

ХРАНЕНИЕ
Я сохранил вывод приведенных выше преобразований в char [], который состоял из '0' и '1'.

У меня вопрос, как выполнить преобразование структуры в двоичный файл и в каком типе данных его хранить. В идеале я хотел бы сохранить его в двоичном формате, чтобы выполнять с ним различные действия. (Тип данных char [], который я использовал, кажется немного неправильным, потому что на самом деле это строка, а не двоичная)

РЕДАКТИРОВАТЬ: Я бы предпочел избегать использования библиотек, которые не включены в стандарт C ++.

Ответы [ 2 ]

0 голосов
/ 06 января 2020

Возможно, было бы лучше использовать вектор bool в качестве вашего storge, например, преобразовать каждый тип данных, как вы сказали, и затем поместить их выходные данные в вектор, а затем получить их в порядке их размещения в контейнере. Хотя лучше использовать вектор std :: byte.

0 голосов
/ 06 января 2020

Я сохранил вывод приведенных выше преобразований в char [], который состоял из '0' и '1'.

Вместо этого просто сохраните двоичные данные в байтах ( например не ['1','1','1','1','0','1','1','1'], а 0xf7). Сохраняйте 8 бит на char столько раз, сколько у вас есть данных. Если вы используете c ++ 17, используйте std::byte вместо char.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...