ホームページ >バックエンド開発 >C++ >ファイルの作成時に `std::fstream::open()` が「そのようなファイルまたはディレクトリはありません」エラーをスローするのはなぜですか?

ファイルの作成時に `std::fstream::open()` が「そのようなファイルまたはディレクトリはありません」エラーをスローするのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 04:22:27404ブラウズ

Why Does `std::fstream::open()` Throw a

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。