Heim > Backend-Entwicklung > C++ > Warum funktioniert mein „ifstream.open()' nicht mit einem String in Dev-C?

Warum funktioniert mein „ifstream.open()' nicht mit einem String in Dev-C?

Mary-Kate Olsen
Freigeben: 2024-12-02 20:53:14
Original
261 Leute haben es durchsucht

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

Öffnen-Funktion für ifstream in dev cpp nicht gefunden

Der bereitgestellte Code versucht, eine Datei mit file.open(name) zu öffnen, wobei Name ist eine Zeichenfolge. Dieser Code lässt sich jedoch erfolgreich in Visual Studio (VS) kompilieren, jedoch nicht in Dev CPP. Die Fehlermeldung weist darauf hin, dass es keine passende Funktion für die Open-Methode mit einem String-Argument gibt.

Die Hauptursache für dieses Problem ist, dass die Unterstützung für die Verwendung eines String-Arguments in der Open-Funktion erst in C 11 eingeführt wurde Während VS C 11 unterstützt, scheint dev cpp eine ältere Version des C-Standards zu verwenden, die dies nicht enthält Funktion.

Lösung:

Um dieses Problem zu beheben, gibt es zwei Ansätze:

  1. Verwenden Sie c_str( ): Konvertieren Sie das String-Argument mit der c_str()-Methode in ein Zeichenarray und übergeben Sie dieses Array an die Open Funktion:

    file.open(name.c_str());
    Nach dem Login kopieren
  2. Konstruktor verwenden: Alternativ können Sie den Konstruktor von ifstream verwenden, der ein String-Argument akzeptiert:

    std::ifstream file(name.c_str());
    Nach dem Login kopieren

Um unnötiges Kopieren zu vermeiden, wird außerdem empfohlen, das String-Argument per Konstante an loadNumbersFromFile() zu übergeben Referenz:

std::vector<int> loadNumbersFromFile(std::string const&amp; name)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein „ifstream.open()' nicht mit einem String in Dev-C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage