/home/vrv/src/EDSMClient-XC_svn/MainUI3/switch.cpp:71: 错误: incompatible types in assignment of ‘QString’ to ‘char [64]’ m_TempUserAccount=ui->lineEdit->text(); ^
时间: 2024-04-12 15:29:52 浏览: 147
这个错误是因为你尝试将一个`QString`类型的对象赋值给一个`char`数组类型的变量。
在C++中,`QString`和`char`数组是两种不同的字符串类型,它们之间不能直接进行赋值操作。
要解决这个错误,你需要将`QString`类型的字符串转换为`char`数组类型的字符串。可以使用`toUtf8()`函数将`QString`转换为UTF-8编码的`QByteArray`,然后使用`qstrcpy()`或其他字符串拷贝函数将其复制到`char`数组中。
以下是一种可能的解决方法:
```cpp
QByteArray byteArray = ui->lineEdit->text().toUtf8();
qstrncpy(m_TempUserAccount, byteArray.constData(), sizeof(m_TempUserAccount) - 1);
m_TempUserAccount[sizeof(m_TempUserAccount) - 1] = '\0'; // 确保以空字符结尾
```
在上面的代码中,我们首先使用`toUtf8()`将`QString`转换为UTF-8编码的`QByteArray`,然后使用`qstrncpy()`将其复制到`char`数组中。我们还确保在数组的末尾添加了一个空字符,以便将其作为C风格字符串处理。
请注意,这里使用了`qstrncpy()`而不是标准的`strcpy()`函数,这是为了避免可能发生的缓冲区溢出。我们还使用了`sizeof(m_TempUserAccount) - 1`来确保我们不会超过`m_TempUserAccount`数组的大小。
阅读全文
相关推荐



















