Seite 1 von 1

Binärdaten lesen und schreiben

Verfasst: 7. März 2006 17:25
von stimpy
Hallo,

ich verwende einen QStream, um Binärdaten in eine Datei zu schreiben
bzw. daraus zu lesen. Üblicherweise verwendet man ja keine qint32 Zahlen, sondern int. Wie stelle ich sicher, daß ich genau 8,16 oder 32 Bits
lese/schreibe?

Code: Alles auswählen

int integer_variable; // Größe nicht ganz sicher
QDataStream str(&file);

str >> (qint32)integer_variable;
//bzw.
str << (qint32)integer_variable;

Ist das so ausreichend? Ich bin mir nicht sicher, wie der Compiler das auslegt.
Oder sollten QT-Projekte generell lieber qint-Typen verwenden?

Danke,
Ulf

Verfasst: 7. März 2006 19:14
von Emperor_L0ser
wenn es wirklich absolut sicher sein muss, nimm auch am besten qint32 als datentyp für die variable, denn wenn du sonst auch ein 16 bit integer system arbeitest, geht das schreiben wohl noch, aber beim lesen kann ziemlicher mist herrauskommen, den auch ein casten nicht beseitigt, in 32 bt passen einfach mehr infos als in 16 bit.

Verfasst: 7. März 2006 21:01
von BartSimpson
besser qtypen benutzen oder mit sizeof prüfen das der int wirklich 32bit ist.
Und denn besser gleich als uint einlesen. In deinem Fall denn quint32.