Heim >Backend-Entwicklung >C++ >Warum schlägt mein „ifstream::open()' mit „Keine passende Funktion' in Dev-C fehl, aber nicht in Visual Studio?
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());
Alternativ können Sie den Konstruktor sowohl zum Erstellen als auch zum Öffnen der Datei verwenden stream:
std::ifstream file(name.c_str());
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:
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!