Rumah > pembangunan bahagian belakang > C++ > Mengapakah `std::fstream::open()` Melemparkan Ralat \'Tiada Fail atau Direktori Sebegitu\' Semasa Mencipta Fail?

Mengapakah `std::fstream::open()` Melemparkan Ralat \'Tiada Fail atau Direktori Sebegitu\' Semasa Mencipta Fail?

Mary-Kate Olsen
Lepaskan: 2024-11-01 04:22:27
asal
459 orang telah melayarinya

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

Isu Penciptaan Fail dengan std::fstream

Soalan:

Apabila menggunakan std: :fstream untuk fail I/O, menemui mesej ralat "Tiada fail atau direktori sedemikian" semasa cuba mencipta fail jika ia belum wujud. Khususnya, coretan kod di bawah menyebabkan isu:

<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>
Salin selepas log masuk

Bagaimanakah isu ini boleh diselesaikan untuk memastikan penciptaan fail apabila perlu?

Jawapan:

Fungsi fstream::open() memerlukan fail yang tidak wujud jika std::fstream::in dinyatakan dalam hujah mod. Untuk menyelesaikan isu ini, sama ada alih keluar std::fstream::in daripada bendera mod atau tambah std::fstream::trunc bersama bendera sedia ada.

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah `std::fstream::open()` Melemparkan Ralat \'Tiada Fail atau Direktori Sebegitu\' Semasa Mencipta Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan