作者QCANCER (琉璃螃蟹)
看板LinuxDev
標題[問題] QT5 的QString 轉 Hex
時間Wed Apr 30 16:30:45 2014
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上似乎不能用
目前完全卡住
請問,有無先進有可以提供一點意見呢?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.117.43
※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1398846648.A.BC8.html
→ alongalone:array跟指標的差別,我會建議你用memcpy, sizeof(char) 04/30 16:55
→ alongalone:是指標的size. 你可以要明確宣告一個"array"試看看 04/30 16:56
→ alongalone:說錯,是sizeof(data);這是我的理解,看有沒有高手要分享 04/30 16:57
→ QCANCER:你是對的,指標只有佔4個Bytes,我都忘了 >"< 04/30 17:43