-1

C++、OpenCV、および Qt で作成したプログラムがあり、csv ファイルにデータを書き込もうとしています。Qt ウィジェットで、csv ファイルの保存場所を選択できる QFileDialog を作成しました。

このパスは 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::openconst 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 に答える