[問題] QT5 的QString 轉 Hex

作者: QCANCER (琉璃螃蟹)   2014-04-30 16:30:45
Google了一堆都沒啥幫助...完全陷入鬼打牆的狀態
所以來問問是否有人有經驗
故事是這樣的,我有一塊控制板,一筆指令吃8 Bytes
如果我程式這樣寫
static const char data[] = {0xAA,0x22,0x20,0x00,0x00,0xEC,0x07};
QByteArray mydata = QByteArray::fromRawData(data, sizeof(data));
然後把 mydata 寫進去 這樣OK
但是如果我要從 UI輸入的資料要轉,就怎麼也轉不過
即使沒工具,我想說轉成字元陣列,然後用迴圈重新塞
const QString valueStr=ui->lineEdit->text();
char *data = valueStr.toLatin1().data();
如果我輸入AA0022,結果... 見鬼的是
valueStr.length() = 6
sizeof(data) = 4
即使輸入八個字元,sizeof(data) 一直都是4
有人說 QString 可以用 toAscii() 轉QByteArray
但是在QT5.2上似乎不能用
目前完全卡住
請問,有無先進有可以提供一點意見呢?
感謝
作者: alongalone (沿著孤單的路)   2014-04-30 16:55:00
array跟指標的差別,我會建議你用memcpy, sizeof(char)
作者: alongalone (沿著孤單的路)   2014-04-30 16:56:00
是指標的size. 你可以要明確宣告一個"array"試看看
作者: alongalone (沿著孤單的路)   2014-04-30 16:57:00
說錯,是sizeof(data);這是我的理解,看有沒有高手要分享
作者: QCANCER (琉璃螃蟹)   2014-04-30 17:43:00
你是對的,指標只有佔4個Bytes,我都忘了 >"<

Links booklink

Contact Us: admin [ a t ] ucptt.com