Rumah > pembangunan bahagian belakang > C++ > Mengapa `ifstream::open()` Saya Gagal dengan 'Tiada Fungsi Padanan' dalam Dev-C , Tetapi Bukan Visual Studio?

Mengapa `ifstream::open()` Saya Gagal dengan 'Tiada Fungsi Padanan' dalam Dev-C , Tetapi Bukan Visual Studio?

DDD
Lepaskan: 2024-12-03 00:26:11
asal
776 orang telah melayarinya

Why Does My `ifstream::open()` Fail with

Memahami "Tiada Fungsi Padanan - ifstream open() Ralat"

Dalam kod C yang disediakan, ralat "tiada fungsi sepadan untuk panggilan 'std::basic_ifstream::open(std::string&)' " timbul daripada percubaan untuk membuka fail menggunakan literal rentetan sebagai hujah. Ralat ini berlaku apabila menyusun dengan dev cpp tetapi tidak dalam VS, menunjukkan tingkah laku khusus platform.

Menyelesaikan Ralat

Untuk menyelesaikan ralat, ubah suai baris pembukaan fail seperti berikut:

file.open(name.c_str());
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan pembina untuk membina dan membuka fail strim:

std::ifstream file(name.c_str());
Salin selepas log masuk

Dalam C 11 dan kemudian, sokongan untuk membuka fail menggunakan argumen std::string telah diperkenalkan. Walau bagaimanapun, versi lama C , seperti yang digunakan oleh dev cpp, tidak menyokong ciri ini.

Pengubahsuaian Tambahan

Selain pembetulan pembukaan fail, ia juga disyorkan untuk:

  • Lepaskan hujah ke loadNumbersFromFile() sebagai rujukan const menggunakan std::string const& untuk menunjukkan bahawa ia tidak akan diubah suai oleh fungsi.
  • Gunakan kaedah ignore() dengan nilai numeric_limits::max() dan pembatas 'n' untuk melangkau mana-mana ruang putih utama dan baca hanya nilai berangka daripada fail.

Atas ialah kandungan terperinci Mengapa `ifstream::open()` Saya Gagal dengan 'Tiada Fungsi Padanan' dalam Dev-C , Tetapi Bukan Visual Studio?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan