我尝试在QT上编译一个项目,但显示了很多错误,其中一个错误在第二行:
QString filename = QFileDialog::getSaveFileName(...
printf("save clustering: %s\n",filename.toStdString() ); // ERROR
...错误:无法从类型' std :: string'转换(又名' basic_string,allocator>')指针类型' char *' printf("保存群集:%s \ n",filename.toStdString());
这个项目是在Linux(gcc 5.2.1)上构建的,但我转移到Mac OS X Sierra(gcc 5.4.0)。我不知道我能做些什么来解决这个问题。有人可以帮帮我吗?
答案 0 :(得分:1)
printf
无法将std::string
作为参数处理,而是您必须选择以下其中一项:
filename.toLocal8Bit.data()
filename.toLatin1().data()
filename.toStdString().c_str()
filename.toStdWString().c_str()
答案 1 :(得分:0)
当你使用Qt时,
您可以使用QDebug
在控制台中打印。
不需要任何转换。
您可以直接打印QString
。
qDebug() << filename;
注意 :您可能需要加入#include <qdebug.h>