[問題] QT5 的QString 轉 Hex

看板LinuxDev作者 (琉璃螃蟹)時間11年前 (2014/04/30 16:30), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
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

04/30 16:55, , 1F
array跟指標的差別,我會建議你用memcpy, sizeof(char)
04/30 16:55, 1F

04/30 16:56, , 2F
是指標的size. 你可以要明確宣告一個"array"試看看
04/30 16:56, 2F

04/30 16:57, , 3F
說錯,是sizeof(data);這是我的理解,看有沒有高手要分享
04/30 16:57, 3F

04/30 17:43, , 4F
你是對的,指標只有佔4個Bytes,我都忘了 >"<
04/30 17:43, 4F
文章代碼(AID): #1JOBIul8 (LinuxDev)
文章代碼(AID): #1JOBIul8 (LinuxDev)