首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将QByteArray转换为char (不是char*或char char*)

将QByteArray转换为char (不是char*或char char*)
EN

Stack Overflow用户
提问于 2016-12-01 09:28:16
回答 2查看 814关注 0票数 0

我有一个问题已经困扰了一个多小时,所以我决定在这里问一问。是否有适当的方法将QByteArray转换为字符?我设法使它工作为char*,但我需要将它作为char传递。

下面是一个代码位,我将qbytearray转换为char*

代码语言:javascript
复制
    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); 
}

我是否应该尝试将ch转换为char?如果是,我该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-01 09:33:13

出于某种原因,我不得不将"xor“重命名为其他东西。

对于您的具体问题,您必须更改这一行:

代码语言:javascript
复制
char ch = checkSum(str).data()[0];

以便从QByteArray返回char*的第一个字符

票数 2
EN

Stack Overflow用户

发布于 2016-12-01 10:23:47

您的代码不工作,因为xor是保留关键字:异或将变量重命名为其他内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40906839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档