作者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://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1398846648.A.BC8.html
1F:→ alongalone:array跟指标的差别,我会建议你用memcpy, sizeof(char) 04/30 16:55
2F:→ alongalone:是指标的size. 你可以要明确宣告一个"array"试看看 04/30 16:56
3F:→ alongalone:说错,是sizeof(data);这是我的理解,看有没有高手要分享 04/30 16:57
4F:→ QCANCER:你是对的,指标只有占4个Bytes,我都忘了 >"< 04/30 17:43