2013-02-08 39 views
-1

我有一個程序,我用C++,OpenCV和Qt編寫了一個程序,我試圖將數據寫入一個csv文件。在我的Qt Widget中,我創建了一個QFileDialog,它允許我選擇保存csv文件的位置。ofstream將數據寫入文件:我如何通過以前定義的字符串作爲文件名

然後將此路徑存儲爲QString,並轉換爲std :: string,如下所示;

std::string OutputFileName = OutputFile.toUtf8().constData(); 

然後我嘗試這個的std :: string如下傳遞給我的ofstream :: open函數:

ofstream CSVFile; 
CSVFile.open(OutputFileName); 

還有就是問題所在;它拒絕編譯,給人錯誤

呼叫沒有匹配功能 '的std :: basic_ofstream> ::打開(的std :: string &)'

我很新的編程因此我不知道這裏到底是什麼問題。我試過看this,但從我可以告訴的是Windows特定的解決方案,我正在使用OSX。

任何人都可以告訴我如何成功地將存儲在QString中的文件路徑傳遞給CSVFile.open()這個術語嗎?

回答

1

in C++ 03,ofstream::open需要const char*參數。

如果OutputFileName是std :: string。

嘗試:

CSVFile.open(OutputFileName.c_str()); 

如果outputFileName是QString的

CSVFile.open(OutputFileName.toStdString().c_str()); 

QString::toStdString參考

相關問題