Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В двоичный файл пишется лишнее, Лишний символ в двоичном файле 
V
    Опции темы
gendalf7771
Дата 19.12.2013, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 19.7.2012
Где: Архангельск

Репутация: нет
Всего: нет



Приветствую!
Имеется массив некоторых unsigned int. Шифрую эти числа через самопальный алгоритм шифрования ГОСТ (режим простой замены), на выходе получаю новые unsigned int. Например:

4268558875, 3938947962,
2048100320, 3022540973,
342845461,   2422388649.

Пишу их в двоичный файл. Делаю так:
Код

fSrc.write((char*)&iBuffer[0],iBufferSize*sizeof(int));

По идее в msvc unsigned int содержит 4 байта, да если их 6 штук, то в двоичном файле должно быть 24 символа.  В некоторых случаях так и получается, но конкретно вот с этими числами выше получается 25 символов! Дешифровка крашится, не знаю, почему такая беда. В notepad++ вижу 25 символов, причем из них CR и LF выделяются курсором как один, а реально их два. Предполагаю, что при выводе в двоичный файл символ переноса строки разбивается на CR и LF.

Кто-нибудь знает причину проблемы?
PM MAIL   Вверх
bsa
Дата 19.12.2013, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(gendalf7771 @  19.12.2013,  16:16 Найти цитируемый пост)
Кто-нибудь знает причину проблемы? 

Цитата(gendalf7771 @  19.12.2013,  16:16 Найти цитируемый пост)
Предполагаю, что при выводе в двоичный файл символ переноса строки разбивается на CR и LF.


Файл ты точно в двоичном режиме открыл? std::binary присутствует в параметрах open?
PM   Вверх
gendalf7771
Дата 19.12.2013, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 19.7.2012
Где: Архангельск

Репутация: нет
Всего: нет



Извиняюсь, нашёл свой косяк при открытии файла smile 
Код

ofstream fSrc(sSrcPath.append(".txt",ios::binary));

Хотя ошибка должна быть... Чудеса. Кстати, заметил, что числа в двоичном виде выводятся в каком-то перевёрнутом порядке. Не подскажете, где можно глянуть, как вообще этот двоичный вывод формируется?
PM MAIL   Вверх
feodorv
Дата 19.12.2013, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 11
Всего: 45



Цитата(gendalf7771 @  19.12.2013,  16:53 Найти цитируемый пост)
выводятся в каком-то перевёрнутом порядке

Порядок байтов smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
gendalf7771
Дата 19.12.2013, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 19.7.2012
Где: Архангельск

Репутация: нет
Всего: нет



Спасибо, почитаю! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.