Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Бинарная запись в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция отслеживающая изменение состояния переменной http://www.cyberforum.ru/cpp-beginners/thread1091183.html
Ребята, помогите пожалуйста написать в теме указанную функцию. Поясню. Есть неподвластная мне переменная из приложения к которой я пишу дополнение. В самом приложении имеется внутренний таймер,...
C++ Осуществить поиск в списке Здравствуйте,вот такая вот проблема у нас новый препод она первый год преподает, предмет очень тяжело на практике нечего не успеваю нужна ваша помощь. Осуществить поиск в списке. В случае отсутствия... http://www.cyberforum.ru/cpp-beginners/thread1091180.html
Видеокурсы C++
Есть такой видеокурс http://cwer.ws/node/270511/ только он старый, и можно ли по нему учится и делать все приложения в Visual Studio 2013 Интересует создание программ(оконных приложений) для...
Как правильно открыть WAV файл C++
Ребята, такое дело. Есть функция IDirectSoundBuffer8 *CreateBufferFromWAV(FILE *fp, sWaveHeader *Hdr) { IDirectSoundBuffer *pDSB; IDirectSoundBuffer8 *pDSBuffer; DSBUFFERDESC dsbd;...
C++ Ошибка при выделении памяти http://www.cyberforum.ru/cpp-beginners/thread1091128.html
Вопрос: из-за чего программа может рушится? int *NRRow = new int ; int *NRow = new int ; int *NCol = new int ; //тут код. всякие преобразования массивов и тд delete NCol;...
C++ Исключительные операции, класс и вызовы Алгоритм задачи 1. Повторять действия, пока не получено правильного результата 1.1. Увести число и его степень. 1.2. Если число >0, то возвести число в введенную степень. 1.3. Если число <0,... подробнее

Показать сообщение отдельно
JunCpp
Сообщений: n/a

Бинарная запись в файл - C++

07.02.2014, 08:24. Просмотров 346. Ответов 1
Метки (Все метки)

Приветствую!

Пишу архиватор. Нужно записать в файл бинарные данные и казалось бы ничего сложного...
Открываю/создаю файл для вывода

C++
1
2
3
std::ofstream output_file;
output_file.open(path_file.c_str(), std::ios::binary | std::ios::out);
assert(output_file.is_open(), "Error! Output file not open.");
Нужно заполнить словарь(std::map), парой std::string + unsigned short


C++
1
2
3
4
5
6
7
uint counter_combination = 0;
while(counter_combination < 256) 
        {
        std::string symbol;
        symbol.push_back(static_cast<char>(counter_combination));
        alphabet[symbol] = counter_combination++;
        }
записать в файл unsigned short

C++
1
output_file.write(reinterpret_cast<char*>(&iter_alphabet->second), sizeof(iter_alphabet->second));
В итоге запись в файл формата .dat - текстовая.
Но, если я заполняю словарь начиная с префиксного инкремента ++counter_combination (как бы это не смешно звучало) , то вывод, в файл происходит в бинарном виде.
Т.е.
C++
1
2
3
4
5
6
7
uint counter_combination = 0;
while(counter_combination < 256) 
        {
        std::string symbol;
        symbol.push_back(static_cast<char>(counter_combination));
        alphabet[symbol] = ++counter_combination;
        }
Думал что дело в нуле
Но при
C++
1
2
uint counter_combination = 1;
counter_combination++;
вывод в файл тоже текстовый.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru