[英]How to convert octet to QString?
我的资料中有一个八位位组。 所以我需要将其转换为QString。
我尝试了QString str(a); 但它不起作用。 从我读的八位字节来看,应该是一个无符号字符
a = 'A';
更新:a是八位位组,据我所读,它说“因为DDS_Octet相当于1字节(8位)”( http://community.rti.com/kb/what-max-number-octets-i-can -put-topicdata-builtin-topics )
更新2:
其定义为无符号字符(无符号字节)
将unsigned char
转换为QString
:
unsigned char a = 'A';
QString str = QString((QChar)a);
你或许应该八位位组不能转换为一个QString
自身。 这将产生一些多余的转换。 您可能会做的更好的是将其转换为Q(Latin1)Char
并在需要将一些字符串操作放在一起的情况下使用。
仅靠它自己做似乎是不切实际的。 如果您仍然坚持这一点,请使用QString构造函数,如下所示:
#include <QString>
#include <QDebug>
int main()
{
unsigned char a = 'A';
QString string(a);
qDebug() << string;
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
"A"
让我不要对QString要求QCoreApplication实例正常工作大声疾呼,所以请让我们暂时忘记这一点。 :-)
这将立即可用,因为QString具有采用QChar的构造函数,并且由于QChar具有采用unsigned char的构造函数而可以隐式使用。
顺便说一下,这些天八位字节几乎几乎是每个字节8位。 我不担心会以不同的方式处理它,否则很多软件可能会在下面破裂。 只需从链接的代码中查看代码,好吗?
// DDS_Octet is defined to be 8 bits. If chars are not 8 bits
// on your system, this will not work.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.