Stream aus Datei auslesen
-
Hi,
die Datei hat folgendes Format:
// Kommentar 0;250;5;10;0;data/texture.png; 0;125;7;13;1;data/texture2.png; ...MfG
Scarabol
-
Hallo Scarabol,
dann verwende doch die normalen Stream-Operatoren:
std::istringstream istr(fstring); char c; istr >> myclass.x >> c >> myclass.y >> c >> myclass.z; // für Zahlenwerte // bzw. std::getline(istr, myclass.name, ';'); // für StringsZur Sicherheit könntest du dann auch noch die Variable c überprüfen, ob dort wirklich ein Semikolon drin steht.
P.S. evilissimo, deine read-Funktion sollte wohl eher einen istream entgegennehmen: void read( std::istream & is, ...)
ebenso fromString: std::istringstream istr( line )
-
lol ja sollte es eigentlich. Ich hab das nicht getestet. Nur so runter geschrieben :p
-
Danke, genau das hab ich gesucht.
MfG
Scarabol
-
Hi,
also irgendwie kann ich getline nicht mit std::string benutzen, er will immer ein char * haben, wieso?
MfG
Scarabol
-
Scarabol schrieb:
Hi,
also irgendwie kann ich getline nicht mit std::string benutzen, er will immer ein char * haben, wieso?
MfG
ScarabolWeil es zwei getlines gibt, und du anscheinend das flasche benutzt. Das eine ist eine Memberfunktion von istream und will einen char*:
http://www.cplusplus.com/reference/iostream/istream/getline/Das andere ist eine freie Funktion im string Header und will einen std::string:
http://www.cplusplus.com/reference/string/getline/
-
oh mann, ich depp vielen dank
-
Hi,
noch eine Frage:
Ich habe ein stringstream objekt mit folgendem Inhalt:
"10,20;20,30;;"
wie kann ich nun aus diesem stream sub streams erzeugen so das ich folgendes erhalte:
sub1 "10,20"
sub2 "20,30"
sub3 ""sub1,2,3 sollten vom Typ stringstream sein.
MfG
Scarabol
-
Scarabol schrieb:
Ich habe ein stringstream objekt mit folgendem Inhalt:
"10,20;20,30;;"
wie kann ich nun aus diesem stream sub streams erzeugen so das ich folgendes erhalte:
sub1 "10,20"
sub2 "20,30"
sub3 ""sub1,2,3 sollten vom Typ stringstream sein.
Zum Beispiel so:
#include <iostream> #include <sstream> int main() { using namespace std; istringstream inhalt("10,20;20,30;*;"); for( string s; getline( inhalt, s, ';' ); ) { stringstream sub( s ); cout << "Der Inhalt des stringstream ist: " << sub.str() << endl; } return 0; }.. wofür soll das gut sein? Ich glaub' das geht noch besser, wenn Du uns erzählst zu was Du den Inhalt in stringstreams benötigst. I.A. kann man sich die stringstreams sparen.
Gruß
Werner
-
Hi,
der Inhalt des Stringstreams enthält die Daten die ich für das Programm brauche und die statisch sind. Wie z.B. Daten für Raumschiffe, Frachtgüter oder Stationen ect.
MfG
Scarabol