将 Qvector<uint8_t> 转换为 QString
Casting Qvector<uint8_t> to QString
我想将对应于字符十六进制值的uint8_t向量转换为字符串。但我无法将矢量转换为字符串。请帮忙我的代码:
#include <QVector>
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QVector<uint8_t> vec;
vec.push_back(51);
vec.push_back(32);
vec.push_back(123);
QString message = "";
qDebug()<<vec.at(0);
for(int counter=0;counter<vec.length();counter++){
message=vec.at(counter)+ message;
}
qDebug()<<message;
//w.show();
return a.exec();
}
您的问题我仍然不清楚,但据我所知,您希望qDebug()
以十六进制输出数字。
所以它可以通过QByteAray
来完成。可能的实施:
#include <QVector>
#include <QCoreApplication>
#include <QDebug>
#include <algorithm>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector<uint8_t> vec;
vec.push_back(51);
vec.push_back(32);
vec.push_back(123);
QByteArray data;
std::copy( vec.begin() , vec.end() , std::back_inserter( data ) );
qDebug() << data.toHex( ' ' );
return a.exec();
}
输出为:
33 20 7b
还可以使用QString::number(your_value,16(将单个数字转换为十六进制表示的字符串。16在这里表示CCD_ 3。
使用QString::fromUtf8()
或QString::fromLatin1()
一次进行转换。
#include <QCoreApplication>
#include <QDebug>
#include <algorithm>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector<uint8_t> vec;
QString message;
QByteArray hex;
vec.push_back(65);
vec.push_back(72);
vec.push_back(73);
vec.push_back(84);
QByteArray data;
std::copy( vec.begin() , vec.end() , std::back_inserter( data ) );
hex=data.toHex();
qDebug() << hex+ " ";
qDebug()<<message.fromUtf8(data);
return a.exec();
}
类似的东西可能会有所帮助(只需要将std::vector替换为qvector(:
// Example program
#include <iostream>
#include <string>
#include <vector>
#include <stdint.h>
int main()
{
std::vector<uint8_t> vec;
vec.push_back(51);
vec.push_back(32);
vec.push_back(123);
std::vector<char> result;
for (auto v: vec)
{
char c = v;
result.push_back(c);
}
std::string s(result.begin(), result.end());
std::cout << s;
}
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- 使用shared_ptr<字符串>转换为一个无序集合<字符串>