Heim > Backend-Entwicklung > C++ > Warum schlägt mein „ifstream::open()' mit „Keine passende Funktion' in Dev-C fehl, aber nicht in Visual Studio?

Warum schlägt mein „ifstream::open()' mit „Keine passende Funktion' in Dev-C fehl, aber nicht in Visual Studio?

DDD
Freigeben: 2024-12-03 00:26:11
Original
768 Leute haben es durchsucht

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

Verstehen „Keine passende Funktion – ifstream open()-Fehler“

Im bereitgestellten C-Code wird der Fehler „Keine passende Funktion für Aufruf“ angezeigt 'std::basic_ifstream::open(std::string&)' " entsteht durch den Versuch, eine Datei mit einem String-Literal als Argument zu öffnen. Dieser Fehler tritt beim Kompilieren mit dev cpp, aber nicht in VS auf, was auf plattformspezifisches Verhalten hinweist.

Beheben des Fehlers

Um den Fehler zu beheben, ändern Sie die Dateiöffnungszeile wie folgt:

file.open(name.c_str());
Nach dem Login kopieren

Alternativ können Sie den Konstruktor sowohl zum Erstellen als auch zum Öffnen der Datei verwenden stream:

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

In C 11 und höher wurde die Unterstützung für das Öffnen einer Datei mit einem std::string-Argument eingeführt. Ältere Versionen von C, wie sie von dev cpp verwendet werden, unterstützen diese Funktion jedoch nicht.

Zusätzliche Modifikationen

Neben der Dateiöffnungskorrektur wird auch Folgendes empfohlen:

  • Übergeben Sie das Argument als konstante Referenz an loadNumbersFromFile() mit std::string const& um anzugeben, dass es von der Funktion nicht geändert wird.
  • Verwenden Sie die Methode „ignore()“ mit dem Wert „numeric_limits::max()“ und dem Trennzeichen „n“, um alle führenden Leerzeichen zu überspringen und nur numerische Werte zu lesen aus der Datei.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein „ifstream::open()' mit „Keine passende Funktion' in Dev-C fehl, aber nicht in Visual Studio?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage