Sorry, wenn das ziemlich noobish ist, aber ich bin ziemlich neu in C++. Ich versuche, eine Datei zu öffnen und lesen mit ifstream
:C++: Variable 'std :: ifstream ifs' hat Initialisierer, aber unvollständiger Typ
vector<string> load_f(string file) {
vector<string> text;
ifstream ifs(file);
string buffer, str_line;
int brackets = 0;
str_line = "";
while (getline(ifs, buffer)) {
buffer = Trim(buffer);
size_t s = buffer.find_first_of("()");
if (s == string::npos) str_line += "" + buffer;
else {
while (s != string::npos) {
str_line += "" + buffer.substr(0, s + 1);
brackets += (buffer[s] == '(' ? 1 : -1);
if (brackets == 0) {
text.push_back(str_line);
str_line = "";
}
buffer = buffer.substr(s + 1);
s = buffer.find_first_of("()");
}
}
}
return text;
}
Allerdings bin ich die folgende Fehlermeldung bekomme ich bin mir nicht ganz sicher, wie zu beheben:
variable 'std::ifstream ifs' has initializer but incomplete type
Antworten sehr geschätzt . Beachten Sie, dass ich nie auf #include <fstream>
vergessen habe, da viele den Fehler bekommen haben, weil sie einfach vergessen haben, den Header einzuschließen.
EDIT:
Es stellte sich heraus, dass ich eigentlich fstream
schließen vergessen, aber ich hatte aufgrund Bewegen der Funktion auf eine andere Datei vergessen.
Lesen Sie das Ende der Frage. ;) – beakr
sollte man entweder 1) ans – Pubby
Diese Antwort hat mir geholfen. In meinem Fall war es, weil ich eine andere Header-Datei entfernte, die fstream miteinschloss. Lösung sollte fstream enthalten. –