-1

我有一个用 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&)'

我对编程很陌生,因此我不知道这里到底是什么问题。我试过看这个,但据我所知,这是一个 Windows 特定的解决方案,我正在使用 OSX。

谁能告诉我如何成功地将存储在 QString 中的文件路径传递给 CSVFile.open() 术语?

4

1 回答 1

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参考

于 2013-02-08T04:10:01.103 回答