Ich bin mitten in einem College-Projekt, das irgendwie wie eine Studenten-Datenbank aussieht. Jede Zeile der Textdatei folgt dieses „Modell“:C++: cin mit Leerzeichen an Strings ohne getline-Funktion
age ; full_name ; avg
Ich brauche die Textdatei und speichern Sie alles in einem Vektor von Strukturen zu lesen, und ich konnte das tun, wenn der Name war nur ein Wort. Nun, offensichtlich, Alter ist ein int, avg ist ein Doppel, aber was ist mit dem vollen Namen? Ich kann nicht einfach file >> full_name;
verwenden, wobei full_name eine Zeichenfolge ist, weil es aufhören würde, es zu lesen, sobald es zu einem Leerzeichen kommt. Die getline()
Funktion würde alles an einem Ort speichern, so dass ich nicht sicher bin, was ich tun soll.
Bitte teilen Sie Ihre WISSEN mit diesem jungen Geist x)
[Stark verwandte] (http://stackoverflow.com/questions/23047052/why-does-reading-a-record-struct-fields -von-stdistream-fail-and-how-can-i-fi). –
'std :: getline' kann ein benutzerdefiniertes Trennzeichen verwenden, diese'; 'sehen aus, als könnten sie nützlich sein :) – melak47
Sehr ähnliches Problem. Aber ich habe nicht verstanden, was die Lösung war. Ich möchte nicht mehr als eine Zeichenfolge für den Namen verwenden, da sie eine variable Anzahl von Wörtern haben kann. Auch das Umordnen der Datei ist keine Option. –