Здравствуйте, MaximE, Вы писали:
>> Вопрос: Как можно в C++ писать в файл и читать из него побитово. >> Причем надо писать некоторое переменное количество бит.
ME>Упаковывай биты в байты и записывай байты в файл. При чтении — распаковывай биты из байтов. ME>Как у тебя представлены биты в программе?
Программа еще в процессе написания, поэтому можно представить как удобнее.
Допустим это char*, __int8*, bool*, разницы существенной нет.
Сейчас это, для простоты, string.
Как тогда можно собрать из 8 ноликов и единичек один байт?
А как разобрать один байт по битам?
Grumbler44 wrote:
>>> Вопрос: Как можно в C++ писать в файл и читать из него побитово. >>> Причем надо писать некоторое переменное количество бит. > > ME>Упаковывай биты в байты и записывай байты в файл. При чтении — распаковывай биты из байтов. > ME>Как у тебя представлены биты в программе? > > Программа еще в процессе написания, поэтому можно представить как удобнее. > Допустим это char*, __int8*, bool*, разницы существенной нет. > Сейчас это, для простоты, string. > Как тогда можно собрать из 8 ноликов и единичек один байт? > А как разобрать один байт по битам?
Здравствуйте, Grumbler44, Вы писали:
G>Как тогда можно собрать из 8 ноликов и единичек один байт? G>А как разобрать один байт по битам?
Представь набор битов как двоичное число и переводи его скажем в 16-е т.е. запаковка/распаковка = перевод из одной системы счисления в другую.
P.S. Посмотри инфу по темплайтику bitset в MSDN.
Если ничто другое не помогает, прочтите, наконец, инструкцию!
Здравствуйте, Grumbler44, Вы писали:
G>Вопрос: Как можно в C++ писать в файл и читать из него побитово. G>Причем надо писать некоторое переменное количество бит.
Здравствуйте, Grumbler44, Вы писали:
G>Вопрос: Как можно в C++ писать в файл и читать из него побитово. G>Причем надо писать некоторое переменное количество бит.
используй std::bitset, для него есть пециализированые операторы ввода\вывода
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Здравствуйте, Azir, Вы писали:
A>Здравствуйте, Azir, Вы писали:
A>>Что каксается замечания про битовые поля, то наверное имеется ввиду конструкция типа:
A>Я не прав, перепутал bit field и std::bitset.
"Не надо мешать экзаменатору, когда он отвечает на свой вопрос."
Если ничто другое не помогает, прочтите, наконец, инструкцию!