Russian Qt Forum

Qt => Общие вопросы => Тема начата: boobsik от Август 03, 2009, 20:18



Название: QByteArray странное поведение =(
Отправлено: boobsik от Август 03, 2009, 20:18
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out << "Hello stupid)";
qDebug() << block;

проанализировал и нашел, что в начале массива block 0,1 и 2 символ соответствуют символу конца строки, а последний символ при выводе на консоль вообще вырубает программу о_О.. Что за непонятные дополнительные символы появляются в массиве данных block? ???


Название: Re: QByteArray странное поведение =(
Отправлено: pastor от Август 04, 2009, 00:00
Почитай про Format of the QDataStream Operators в ассистанте.


Название: Re: QByteArray странное поведение =(
Отправлено: boobsik от Август 17, 2009, 12:37
Странно, что QDataStream добавляет какие-то данные для QByteArray, для чего размер массива в начале?


Название: Re: QByteArray странное поведение =(
Отправлено: BRE от Август 17, 2009, 13:46
Странно, что QDataStream добавляет какие-то данные для QByteArray, для чего размер массива в начале?
Что бы потом его можно было корректно прочесть из потока.

Представь ситуацию, нужно записать несколько массивов, как при чтении различать когда закончился один и начался второй ByteArray.


Название: Re: QByteArray странное поведение =(
Отправлено: boobsik от Август 17, 2009, 15:34
точно, так же со строками..