std::fstream でのファイル作成の問題
質問:
std を使用する場合:ファイル I/O の :fstream。ファイルが存在しない場合にファイルを作成しようとすると、「そのようなファイルまたはディレクトリはありません」というエラー メッセージが表示されます。具体的には、以下のコード スニペットが問題の原因となっています:
<code class="cpp">std::fstream my_stream; my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out); if (!my_stream) std::cout << "error" << strerror(errorno);</code>
必要なときに確実にファイルを作成するには、この問題をどのように解決できますか?
回答:
モード引数に std::fstream::in が指定されている場合、fstream::open() 関数には存在しないファイルが必要です。この問題を解決するには、モード フラグから std::fstream::in を削除するか、既存のフラグの横に std::fstream::trunc を追加します。
<code class="cpp">// Remove std::fstream::in std::fstream my_stream; my_stream.open("my_file_name", std::fstream::binary | std::fstream::out); // Add std::fstream::trunc std::fstream my_stream; my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out | std::fstream::trunc);</code>
以上がファイルの作成時に `std::fstream::open()` が「そのようなファイルまたはディレクトリはありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。