我正在尝试将int转换为QBytearray.我正在使用这个方法QByteArray :: number(m_vman); 这是对的吗?
我正在尝试使用number()来获取QBytearray的int
我正在尝试以下代码,但bytearray为零
QByteArray vmanByteArray, vheaterByteArray;
QDataStream streamVMan(&vmanByteArray, QIODevice::WriteOnly);
QDataStream streamVHeater(&vheaterByteArray, QIODevice::WriteOnly);
streamVMan << m_vman;
streamVHeater << m_vheater;
QByteArray arr = m_htman ? vmanByteArray : vheaterByteArray;
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以这样做.
int myInt = 123;
QByteArray q_b;
q_b.setNum(myInt);
Run Code Online (Sandbox Code Playgroud)
数组不为零,您的代码工作正常:
#include <QtCore>
QByteArray test(bool m_htman) {
int m_vman = 1;
int m_vheater = 2;
QByteArray vmanByteArray, vheaterByteArray;
QDataStream streamVMan(&vmanByteArray, QIODevice::WriteOnly);
QDataStream streamVHeater(&vheaterByteArray, QIODevice::WriteOnly);
streamVMan << m_vman;
streamVHeater << m_vheater;
QByteArray arr=m_htman ? vmanByteArray: vheaterByteArray;
return arr;
}
int main() {
auto one = QByteArray() + '\0' + '\0' + '\0' + '\1';
auto two = QByteArray() + '\0' + '\0' + '\0' + '\2';
Q_ASSERT(test(true) == one);
Q_ASSERT(test(false) == two);
}
Run Code Online (Sandbox Code Playgroud)
如果存储在其中的值为零,则它可能是“零”,但这是正确的。
| 归档时间: |
|
| 查看次数: |
10585 次 |
| 最近记录: |