goG*_*Gud 3 c++ string qt qdebug
我试图使用一些矢量数据的名称struct
.我想知道在哪个名字qDebug()
更清楚:
const std::string& testName = "asdfqwer";
qDebug() << testName;
Run Code Online (Sandbox Code Playgroud)
它在构建中给出了错误消息:
Error: no match for 'operator<<' in 'qDebug()() << testName'
Run Code Online (Sandbox Code Playgroud)
我没有更改const std::string&
类型的选项.你可以帮我解决这个问题而不改变类型吗?
qDebug()
什么都不知道,std::string
但它适用const char*
.您可以在这里找到合适的操作员.如上所述,您可以使用data()
或c_str()
更好地实现此目的Ji?í Pospíšil
.
例如:
const std::string& testName = "asdfqwer";
qDebug() << testName.data() << testName.c_str();
Run Code Online (Sandbox Code Playgroud)
您可以使用QString :: fromStdString转换std::string
为.QString
如果您需要经常在代码中将 std::string 写入 qDebug() ,则可以全局实现此函数(例如在 you 中main.cpp
):
#include <QDebug>
#include <string>
QDebug& operator<<(QDebug& out, const std::string& str)
{
out << QString::fromStdString(str);
return out;
}
int main()
{
std::string jau = "jau";
qDebug() << jau;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6611 次 |
最近记录: |