シミュレーションの最後に、いくつかの結果をデータファイルに追加された行として書き込みたいと思います。私が使用しているコードは次のとおりです。これは、outFile
として正しく割り当てられたものでありstd::ofstream
、まだ存在していないファイルへの有効なパスが含まれており、ファイルに出力される変数output_file
は、シミュレーション中の値。std::string
int
outFile.open(output_file.c_str(), std::ios::out | std::ios::app );
outFile << num_nodes << ", " << tot_s << ", " << tot_c << ", " << tot_d << std::endl;
outFile.close();
関数でファイルを正しく開いて、をofstream::is_open()
返すかどうかを確認しましたfalse
。しかし、その理由がわかりません。私は多くの異なるファイル名とディレクトリパスでそれを試しましたが、それらはすべてチェックしましたが、それらは有効です(タイプミスなどはありません)。
書き込まれているファイルは、デスクトップ上のフォルダーにあり、常にファイルを作成しているため、アクセス許可の問題になる可能性があるかどうかはわかりません。権限の問題である場合、どうすれば確認できますか?
そうでなければ、他に何がファイルへの書き込みを妨げている可能性がありますか?
追加した:
コメントのフォローアップとして、への呼び出しを追加した後perror()
、「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。問題のファイルパスは次のとおりです。
/home/ely/Desktop/Evolutionary_Dynamics/GamesOnCycle/data/test.data
このファイルを作成し、そのパス内のすべてのディレクトリが存在し、すべてのスペルが正しいなどであり、GamesOnCycleフォルダーまたはそのデータサブフォルダーに奇妙なアクセス許可の問題はありません。これはLinuxシステム(Ubuntu 11.04)であるため、C ++にwrtファイルパスが必要なものがない場合を除いて、ファイルパスのスラッシュは正しいことに注意してください。