[问题] 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