• 5056阅读
  • 7回复

[提问]QString与Uint6_t * [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-09
关键词: 求助
怎样将LineText中输入的信息QString型转换成uint16_t UT_REGISTERS_TAB[50] 这样的数据类型,能够实现转换成unsigned short 但是这样的数组形式的怎么转换??急求!
离线realfan

只看该作者 1楼 发表于: 2013-08-10
QString中每个元素,是QChar, QChar的unicode方法,可以得到对应的值
简单思路如下
uint16_t UT_REGISTERS_TAB[50];
QString str = ".......";
for(int i = 0; i < str.length(); ++i)
{
      QChar ch = str [ i ];
      UT_REGISTERS_TAB[ i ] = ch.unicode();
}





只看该作者 2楼 发表于: 2013-08-12
回 1楼(realfan) 的帖子
不对呢                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

只看该作者 3楼 发表于: 2013-08-12
回 1楼(realfan) 的帖子
我在LineEdit里面输入的是0x..的十六进制,在TextEdit中输出来的数值变了。转换的方式不对
离线realfan

只看该作者 4楼 发表于: 2013-08-13
回 3楼(心雨星晴jay) 的帖子
我理解错了,以为你是想把QString的每个字符存成unsigned short呢。
你的意思是LineEdit输入0x0A, 转成数字10,是这个意思吗?
QString str = "0x0A";
str = str.mid(2);
bool ok;
ushort us= str.toUShort(&ok, 16);

只看该作者 5楼 发表于: 2013-08-15
回 4楼(realfan) 的帖子
这个是把,QString转换成unsigned short 数,但是我这个是把LineEdit输入的0x0A 0x01 这些东西写入到一个unsigned short数组中,执行完那个函数之后 再把这些数显示在TextEdit里面

只看该作者 6楼 发表于: 2013-08-19
怎么搞啊,头都大了
离线dbzhang800

只看该作者 7楼 发表于: 2013-08-19
之所以头大,估计是因为你对C、C++的基础知识不太熟。

比如:你是否能够理解下面5个东西有什么区别和联系,又如何相互转换?

"0x0A" '0x0A'  0x0A  "\x0A" '\x0A'
快速回复
限100 字节
 
上一个 下一个