c-「ofstream」の使用はファイルを作成も書き込みもしないように見える

シミュレーションの最後に、データファイルに追加された行としていくつかの結果を書き込みます。私が使用しているコードは次のとおりです.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()の呼び出しを追加した後、「No such file or directory」エラーが表示されます。問題のファイルパスは次のとおりです。

/home/ely/Desktop/Evolutionary_Dynamics/GamesOnCycle/data/test.data

このファイルを作成し、そのパス内のすべてのディレクトリが存在し、すべてのスペルが正しいことなどが必要です。GamesOnCycleフォルダーまたはそのデータサブフォルダーには、奇妙な権限の問題はありません。 Linuxシステム(Ubuntu 11.04)なので、Cがw.r.tを持たなければならないものがない限り、スラッシュはファイルパスに対して正しいことに注意してください。ファイルパス。

ベストアンサー
これは、いくつかの理由により発生する可能性があります。

1)ファイルはすでに開いています。

2)ファイルパス内のすべてのディレクトリは作成されません。

3)ファイル許可の欠如。

追加のリファレンスについては、When will ofstream::open fail?を参照してください

転載記事の出典を記入してください: c-「ofstream」の使用はファイルを作成も書き込みもしないように見える - コードログ