【问题标题】:QByteArray char by char AnalysisQByteArray char by char 分析
【发布时间】:2017-04-01 18:47:42
【问题描述】:
QByteArray Reception = client->read(client->bytesAvailable()) ;
char* reci = Recepcton.data();
if( reci[0] == "V" )
{
     ui->lcdNumber_Distance->value( (int) atoi(reci[1]) );
}

有人可以解释为什么 if 行显示: “错误:从 'char' 到 'const char*' 的无效转换”在 Qt 控制台中?

我尝试更改为:const char* reci = Recepcion.data(); 但随后显示: “错误:初始化时无法将 'char*' 转换为 'const int*'”

【问题讨论】:

  • 您使用单引号来表示字符文字,而不是双引号。您在代码中所做的是将单个字符与字符串文字进行比较,正如错误所描述的那样。
  • 我该如何解决?我想知道接待处的内容
  • 你想看什么?字符串中的第一个字符还是整个字符串?目前尚不清楚您要完成什么。
  • 我想查看整个字符串。 DanaYan 的分析器有助于解决 char* 转换错误。现在我只是处理 atoi 显示错误:没有匹配函数调用 'QLCDNumber::value(int)

标签: c++ arrays qt char qbytearray


【解决方案1】:

问题一:QByteArray 有一个成员函数 constData(),所以你可以这样做

const char* reci = Recepcton.constData();

问题 2:"V" 是一个字符串,而 reci[0] 是一个字符,你无法比较它们。正如评论中提到的,你应该

reci[0] == 'V'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2013-02-26
    • 2016-07-07
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多