string stream parser



  • morbius schrieb:

    Ok, funktioniert trotzdem nicht, er findet "v" nicht...)-:

    komisch, mir fällt kein fehler mehr auf.

    in Test.obj ist doch nicht irgendwo ein zeichen mit ascii-code 26, was für dateiende steht, und das dateilesen bricht deshalb ab? dann täte ios::binary helfen.

    falls es daran nicht liegt, zeig nochmal das ganze programm, vielleicht hat sich wieder was eingeschlichen.



  • hüh???? schrieb:

    Hast du schon mal was von debuggen gehört?

    das tun wir doch gerade.



  • Nein, kein besonderes Zeichen enthalten. Hab auch nichts verändert. Das einzige was in der Konsole kommt ist, 8 x "nae, nix!". Das heisst er findet es garnicht. Weil das File genau 8 Zeilen hat. Hier nochmal der Code:

    #include <iostream>
    #include <fstream>
    #include <conio.h>
    #include <sstream>
    #include <vector>
    
    std::string getWord(std::string Line, int Pos)
    {
    	std::vector<std::string> Vec;
    	std::stringstream ss(Line);
    	std::string Word, a;
        while(ss >> Word)
        Vec.push_back(Word);
    
        if(Pos+1 > Vec.size())
            return "";
    
            return Vec[Pos]; 
    }
    
    int main(void)
    {
    	std::ifstream File;
    	std::string Line;
    
    	File.open("Test.obj",std::ios::in);
    
    	while(!File.eof())
    	{
    	getline(File,Line);
    
    	if(getWord(Line, 3)=="v")
    	{
    		std::cout<<"V wurde gefunden!"<<std::endl;
    	}
    	else
    	{
    		std::cout<<"Nae, nix!"<<std::endl;
    	}
    	}
    
    	getch();
    }
    


  • volkard schrieb:

    hüh???? schrieb:

    Hast du schon mal was von debuggen gehört?

    das tun wir doch gerade.

    😃

    morbius warum hast du ne 3 aus der 0 gemacht? Mit nem Debugger hättest du das ganz einfach gefunden. :p



  • najut da hatte ich rumproniert, da muss natürlich ne 0 hin.



  • Was ist denn nun...? Komme leider nicht weiter )-:



  • morbius schrieb:

    Was ist denn nun...? Komme leider nicht weiter )-:

    wir dachten, mit der 0 klappts.



  • Nee, leider nicht ;-D



  • morbius schrieb:

    Nee, leider nicht ;-D

    dann würde ich vorschlagen, jetzt mewhr testausgaben zu machen, zum beispiel

    while(!File.eof()) 
        { 
        getline(File,Line); 
    cout<<"'"<<Line<<"' '"<<getWord(Line, 0)<<"'"<<endl;
        if(getWord(Line, 0)=="v")
    


  • Jo, hab's nu hinbekommen, vielen lieben Dank volkard! Und auch danke an "hüh".


Anmelden zum Antworten