crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Запись unsigned long в бинарный файл
vanvo
  опции профиля:
сообщение 30.10.2009, 21:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 18.8.2008
Пользователь №: 267

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вопрос наверняка жутко глупый, но не получается корректно записать, а затем считать числа.
unsigned long number;
QFile file ("gen.dat");
file.open(QIODevice::ReadOnly);
QDataStream fileStream(&file);
fileStream >> number;

Оператор << с ulong'ом не работает, а явное приведение типа к поддерживаемым приводит к вылетанию программы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 30.10.2009, 22:22
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Тип long вообще не одноразмерный, он может быть 32 бита и больше. Это не допустимо в сериализации данных, где нужно знать точные размеры. Иначе придется еще к каждому числовому типу дополнительный байт размера приписывать.

Вылет происходит уже после загрузки 64 битного числа из потока в ulong? Проверь значения до записи в поток и после получения. Может быть число что-то теряет при приведении типа.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 21:58