Russian Qt Forum
Ноябрь 24, 2024, 23:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Записать quint8 в файл ?  (Прочитано 5093 раз)
xk
Гость
« : Декабрь 10, 2007, 20:26 »

Доброго времени суток.
Не могу заставить этот маленький код работать как надо:
Код:
QFile fout("debug.log");
fout.open(QIODevice::WriteOnly);
QTextStream str(&fout);

quint8 a = 0x50;
quint8 b = 0x80;
quint8 c = 0x98;
//  str << a << b << c; - а в этом случае переменные преобразуются в строки.
str << (char)a << (char)b << (char)c;
fout.close();

Открываю файл 16-м редактором, а там: 0x50 0x80 0x3F  Шокированный
Не догоняю почему так.. и как сделать так, чтобы записался таки мой байт 0x98 ?
Помогите пожалуйста, ум за разум уже заходит :-)
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Декабрь 10, 2007, 21:08 »

Доброго времени суток.
Не могу заставить этот маленький код работать как надо:
Код:
QFile fout("debug.log");
fout.open(QIODevice::WriteOnly);
QTextStream str(&fout);

quint8 a = 0x50;
quint8 b = 0x80;
quint8 c = 0x98;
//  str << a << b << c; - а в этом случае переменные преобразуются в строки.
str << (char)a << (char)b << (char)c;
fout.close();

Открываю файл 16-м редактором, а там: 0x50 0x80 0x3F  Шокированный
Не догоняю почему так.. и как сделать так, чтобы записался таки мой байт 0x98 ?
Помогите пожалуйста, ум за разум уже заходит :-)

Попробуй использовать QDataStream вместо QTextStream.
Успехов.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Декабрь 10, 2007, 21:16 »

А зачем к привоить к char?

Код:
str << (char)a << (char)b << (char)c;


0x98 = 152

имхо, переполнение типа char
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
xk
Гость
« Ответ #3 : Декабрь 10, 2007, 21:34 »

Спасибо.
QDataStream помог... просто мне надо было еще QByteArray в тот же файл писать, а QDataStream их машинонезависимо сериализует в операторах <<. Проблема решилась использованием QDataStream::writeRawData()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.