Entschuldigung für das Posten einer Textwand mit Code, aber ich kann nicht herausfinden, warum der Strukturvektor die Werte nicht bekommt.Was ist mit dieser Lesefunktion falsch?
void load() {
list.clear();
vector<string> tag;
vector<int> points;
ifstream scorelist, namelist;
scorelist.open("score.txt");
if (scorelist.is_open()) {
int scores;
while (scorelist.good()) {
cin >> scores;
points.push_back(scores);
}
scorelist.close();
}
namelist.open("name.txt");
if (namelist.is_open()) {
string text;
while (namelist.good()) {
getline(namelist, text);
tag.push_back(text);
}
namelist.close();
}
players games; //Players a struct with elements string name, int score
for (int i = 0; i < 10; i++) {
games.score = points[i];
games.name = tag[i];
list.push_back(games); //list is a vector<players>
}
}
Wenn ich zum Beispiel cout << list[0].name
hier nichts schreiben würde geschieht, hat die txt Wert.
Haben Sie versucht, in einem Debugger durch den Code zu Schritt? Werden die Dateien korrekt geöffnet? –
Sie überprüfen nie, ob die Dateien wirklich geöffnet werden können. Sie sollten einen 'else'-Zweig hinzufügen und dort eine Fehlermeldung ausgeben. –
_ "wall of text" _ Das ist sicher nicht das, was hier als _wall of text_ betrachtet wird. Die Länge von Text und Code ist in Ordnung. –