stringstream frage



  • Guten Abend,

    Ich habe ein Problem mit den stringstreams. Ich benutze diese als Converter um 3 floats aus einem string zu extrahieren. Nun zu meinem Problem, dies klappt, komischerweise, nicht immer.

    str="0.19221 18.27863 0.07777\n";
    conv << str;
    conv >> a[0];
    conv >> a[1];
    conv >> a[2];
    

    a ist hierbei ein GLfloat Pointer den ich mit new auf die Größe 3 bringe (sorry, mir ist das Wort nicht eingefallen 😃 )
    klappt ohne Probleme, die floats erhalten die Werte 0.19221, 18.27863 und 0.07777.

    Das dumme ist, dies klappt nicht immer. Da ich den Fehler nicht genau in Worte fassen kann, poste ich einfach den Code.

    if(AmountMesh>0)
    {
    	Meshes=new CMesh[AmountMesh];
    
    	for(int i=0;i<AmountMesh;i++)
    	{
    		conv<<buffer[n];  //nicht benötigt, verworfen
    		n++; //n auf 4 erhöhen
    		conv.str("");
    		conv<<buffer[n];
    		conv>>a; //a bleibt leer
    		Meshes[i].Pos[0]=a; 
    		conv>>Meshes[i].Pos[1]; //bleiben auch leer
    		conv>>Meshes[i].Pos[2];
    

    Hier wird kein float aus conv rausgeholt.

    Ich habe grad noch etwas weiter probiert und in die Schleife ein

    conv << buffer[4];
    conv >> a;
    

    gesetzt. a bekommt hier ebenfalls keinen Wert. Wenn ich diese Anweisungen im Code weiter nach oben setze, nach direkt dem Laden der Datei, klappt es und a bekommt den 1. float Wert von buffer[4].

    Kann mir das jemand erklären? Ich verstehs nicht, kann daran liegen, das ich grad meine ersten Gehversuchen mit dem std namespace mache oder das ich schon zu müde bin um irgendwas zu finden.

    Vielen dank für eure Mühe,

    Shelling


Anmelden zum Antworten