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
318 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!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!