Rumah > pembangunan bahagian belakang > C++ > Mengapa `ifstream::open()` Tidak Berfungsi dengan `std::string` Argumen?

Mengapa `ifstream::open()` Tidak Berfungsi dengan `std::string` Argumen?

Mary-Kate Olsen
Lepaskan: 2024-12-08 04:29:10
asal
889 orang telah melayarinya

Why Doesn't `ifstream::open()` Work with `std::string` Arguments?

Tiada fungsi padanan untuk ifstream open()

Isu timbul dalam coretan kod:

std::ifstream file;
file.open(name); // the error is here
Salin selepas log masuk

Dev C menghadapi ralat "tiada fungsi padanan untuk panggilan 'std::basic_ifstream::open(std::string&)" dan "tiada fungsi padanan untuk panggilan 'std::basic_ofstream::open(std::string&)". Ralat ini berlaku kerana fungsi open() dalam ifstream mengharapkan rentetan gaya C sebagai hujah, tetapi kod tersebut menyediakan std::string.

Penyelesaian:

Untuk menyelesaikan isu ini, tukar std::string kepada rentetan gaya C menggunakan ahli c_str() fungsi:

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

Sebagai alternatif, anda boleh memulakan terus objek ifstream dengan rentetan gaya C:

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

Selain itu, pertimbangkan untuk mengisytiharkan loadNumbersFromFile() seperti berikut:

std::vector<int> loadNumbersFromFile(const std::string& name)
Salin selepas log masuk

Perubahan ini menunjukkan bahawa fungsi tidak mengubah suai hujahnya dan menghalang perkara yang tidak perlu salinan.

Atas ialah kandungan terperinci Mengapa `ifstream::open()` Tidak Berfungsi dengan `std::string` Argumen?. 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