Rumah > pembangunan bahagian belakang > C++ > Mengapa `ifstream.open()` Saya Tidak Berfungsi dengan String dalam Dev-C ?

Mengapa `ifstream.open()` Saya Tidak Berfungsi dengan String dalam Dev-C ?

Mary-Kate Olsen
Lepaskan: 2024-12-02 20:53:14
asal
218 orang telah melayarinya

Why Doesn't My `ifstream.open()` Work with a String in Dev-C  ?

Fungsi Terbuka Tidak Ditemui untuk ifstream dalam dev cpp

Kod yang disediakan cuba membuka fail menggunakan file.open(name), di mana nama ialah rentetan. Walau bagaimanapun, kod ini berjaya menyusun dalam Visual Studio (VS) tetapi tidak dalam dev cpp. Mesej ralat menunjukkan bahawa tiada fungsi padanan untuk kaedah terbuka dengan argumen rentetan.

Punca isu ini ialah sokongan untuk menggunakan argumen rentetan dalam fungsi terbuka hanya diperkenalkan dalam C 11 . Walaupun VS menyokong C 11, dev cpp nampaknya menggunakan versi lama standard C, yang tidak termasuk ini ciri.

Penyelesaian:

Untuk menyelesaikan isu ini, terdapat dua pendekatan:

  1. Gunakan c_str( ): Tukarkan hujah rentetan kepada tatasusunan aksara menggunakan kaedah c_str() dan hantar tatasusunan itu kepada tatasusunan terbuka fungsi:

    file.open(name.c_str());
    Salin selepas log masuk
  2. Gunakan Pembina: Sebagai alternatif, anda boleh menggunakan pembina ifstream yang mengambil hujah rentetan:

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

Selain itu, untuk mengelakkan salinan yang tidak diperlukan, disyorkan untuk menghantar hujah rentetan kepada loadNumbersFromFile() dengan rujukan berterusan:

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

Atas ialah kandungan terperinci Mengapa `ifstream.open()` Saya Tidak Berfungsi dengan String dalam Dev-C ?. 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