C++ Fehler kann nicht behoben werden?
Ich versuche gerade etwas mit C++ anzufangen, weil ich mich auf die Ausbildung vorbereiten möchte. Doch ich kriege den Fehler mit Mitteln und Wege nicht behoben.
In Zeile 42 wird "getline" rot unterstrichen. Ich habe jegliche Dinge ausprobiert etc., kam aber nie zu einer Verbesserung. Mir wird angezeigt "Der Bezeichner "getline" ist nicht definiert". Doch ich finde für diese Fehlermeldung keinen Verursacher... (E0020 und C3861)
4 Antworten
Die Fehlermeldung ist doch in dieser Hinsicht klar und verständlich:
Eine Funktion namens getline ist nirgends definiert.
Woher soll der Compiler wissen, welchen Code er dafür übersetzen soll?
Entweder du verwendest mit <include ...> eine Standardbibliothek, in der sie vordefiniert ist, oder du definierst selber eine.
https://de.cppreference.com/w/cpp/string/basic_string/getline
Da steht:
Defined in header <string>
Sollte Hilfe genug sein ;-)
mach mal ein
#include <string>
am Anfang deines Programms. Dann sollte es funktionieren
Nein. Wie ich eben gelesen habe ist die Funktion "getline" nur in Kombination mit #include <string> möglich.
Bin zwar kein Experte und es wird jetzt ziemlich peinlich wenn ich mir die falsche Definition von getline angeschaut habe aber
getline (char* s, streamsize n );
- string line;
- fstream file;
- file.open(p_fileName, ios::in);
- if (file.is_open())
- {
- getline(file, line);
- }
fstream file; entspricht glaub keinem charpointer, ein String jedoch schon. Ob fstream sich mit streamsize verträgt weiß ich nicht, aber tausch mal
getline(line, file);
Haha OMG danke <3 😂Liegt das wirklich daran, weil ich in Zeile 36 "string getFile" schreiben musste?