我有一个用C ++,OpenCV和Qt编写的程序,我试图将数据写入csv文件。在我的Qt Widget中,我创建了一个QFileDialog,允许我选择保存csv文件的位置。
然后将此路径存储为QString,并按如下方式转换为std :: string;
std::string OutputFileName = OutputFile.toUtf8().constData();
然后我尝试将这个std :: string传递给我的ofstream :: open函数,如下所示:
ofstream CSVFile;
CSVFile.open(OutputFileName);
存在问题;它拒绝编译,给出错误
没有匹配函数来调用'std :: basic_ofstream> :: open(std :: string&)'
我对编程非常陌生,因此我不知道这里究竟是什么问题。我试过看this,但据我所知,这是一个Windows特定的解决方案,我正在使用OSX。
有谁能告诉我如何成功将存储在QString中的文件路径传递给CSVFile.open()术语?
答案 0 :(得分:1)
在C ++ 03中,ofstream::open需要const char*
参数。
如果OutputFileName是std :: string。
尝试:
CSVFile.open(OutputFileName.c_str());
如果outputFileName是Qstring
CSVFile.open(OutputFileName.toStdString().c_str());
请参阅QString::toStdString参考