다음은 내 코드를 먼저 설명합니다.QDataStream 직렬화 문제
QByteArray buff;
QDataStream stream(&buff, QIODevice::ReadWrite);
stream.setVersion(QDataStream::Qt_4_7);
stream << 5;
stream << 6;
qDebug() << buff;
int x;
int y;
stream >> x >> y;
qDebug() << x << y;
내가 기대 × 5, y는 6하지만 여기 0 0 을 보여주는 일이 될 것은 당신은/읽기를 사용하여 QByteArray에 /에서 다음과 같이 쓸 수 없습니다 출력
"
0 0
이 다른 (그러나 관련) 문제를 나에게 도움이 : 그것은 호출이'명확한()의'QByteArray에 그은을 백업 밝혀 QDataStream은 스트림 위치를 재설정하지 않습니다! 그래서,'stream << (int) 5; buff.clear(); stream << (int) 6;'buff.size()는'4'가 아니라'8'을보고하게됩니다. 스트림을 재설정해야합니다. – Dave