stream prob.



  • hi

    std::ifstream read("bild.txt");	
    	std::string zeile;
    	int count = 0;
    	while(true)
    	{
    		if(zeile.find("bla") != std::string::npos)
    		{
    			std::cout << "Gefunden." << std::endl;
    			++count;
    		}
    	}
    

    datei bild existiert, habs auch geprüft sogar mit if()´klappt aber noch immer nicht. ich glaub dass "ZEILE' net hochgezählet wird.
    es kommt kein "Gefunden" raus 😞
    bitte helft mir

    dnake



  • Vielleicht solltest du die Datei nicht nur öffnen, sondern auch einlesen (Stichwort: getline()).



  • CStoll schrieb:

    (Stichwort: getline()).

    😮 Na sowas aber auch. Habs vergesset 😞

    aber habe noch eine frage : wie kann ich mit dem find suchen? wie gehts bei leerzeichen?



  • kann mir jmd helfe bitte?



  • std::ifstream file("bild.txt");
    std::string row;
    
    while(std::getline(file, row))
    {
        if(row.find("bla") != -1)
            std::cout << "\"bla\" gefunden" << std::endl;
    
    	if(row.find(" ") != -1)
    		std::cout << "Leerzeichen gefunden" << std::endl;
    }
    
    file.close();
    

    MfG



  • Wie sieht das Format von der Datei 'bild.txt' aus?

    Falls 'bla' ein Wort ist, lässt sich das leicht durch Einlesen von strings bewerkstelligen. Etwa so:

    std::ifstream read("bild.txt");  
        for( std::string wort; read >> wort; )
        {
            if( wort == "bla" )
            {
                std::cout << "Gefunden." << std::endl;
                ++count;
            }
        }
    

    Bzw. sogar so:

    std::ifstream read("bild.txt");  
        int count = std::count( std::istream_iterator< std::string >( read ), std::istream_iterator< std::string >(), 
            std::string( "bla" ) );
    

    :xmas2: Werner


Anmelden zum Antworten