У меня есть проблема, которая прослушивается более часа и решила просто спросить здесь. Есть ли правильный способ преобразования QByteArray в char? Мне удалось заставить его работать как char *, но мне нужно передать его как символ.Преобразование QByteArray в char (не char * или constChar *)
Вот код немного, где я беру QByteArray и преобразовать его в символ *:
QByteArray MainWindow::checkSum(QByteArray &b)
{
qint16 b_len = b.length();
char xor = 0;
for (int i = 0 ; i < b_len ; i ++)
{
xor = xor^b[i];
}
return b;
}
void MainWindow::on_flipHorzButton_clicked()
{
// getFirmwareVersion = { 0xe6, 0x05, 0x12, 0x00}
QByteArray str;
char ch = checkSum(str).data();
str[0] =0xaa;
str[1] =0xbb;
str[2] =0xcc;
str[3] =0xdd;
str[4] = ch;
printf("%s", str[4]);
serial.write(str, 5);
}
Должен ли я попытаться преобразовать ч обугливаться? Если да, как мне это сделать?
Это неясно, чего вы хотите. just char - 1 символ – Starl1ght
Я в процессе добавления дополнительного кода. Дайте мне одну секунду. :) –
Почему? Для чего вы хотите * одиночный символ *? Как может целая строка символов когда-либо вписываться в один байт, который предоставляет 'char'? Что такое * актуальная проблема, которую вы хотите решить ([связанное чтение о проблеме XY] (http://xyproblem.info/))? –