Im Text nach einem Wort suchen - C++



  • "Ungültige Verwendung von Typedef. 'string'"

    Ich bekomme diese Fehlermeldung



  • Du brauchst natürlich auch ein Objekt, auf dessen find() du zugreifen kannst 😉 (btw, vielleicht solltest du dich etwas besser mit C++ auseinandersetzen)



  • hmm ich habe das auf jeden Fall so versucht und es ging nicht:

    string str;
    char c;
    while( !dat.eof() )
    {
    dat.get( c );
    str += c;
    }
    dat.close();
    std::string.find("tmp")



  • Und woher soll das find() so wissen, wo es suchen soll? Da fehlen wirklich noch massive Grundlagenkenntnisse.

    Besser sieht es so aus:

    size_t p = str.find("tmp");
    if(p!=string::npos)
      cout<<"Gefunden an Position "<<p<<endl;
    else
      cout<<"nicht gefunden\n";
    


  • Wenn ich schreibe
    std::string.find() bedeutet das, dass du anstelle von std::string den Namen einer varialen von diesem Typ schreibst (siehe CStolls Beispiel)



  • er tut aber jetzt immer: nicht gefunden anzeigen egal was ich eingebe

    cin >> tmp;
    	ifstream dat("C://liste.txt", ios::in);
    	string str;
    char c;
    while( !dat.eof() )
    {
    dat.get( c );
    str += c;
    }
    dat.close();
    size_t p = str.find("tmp");
    if(p!=string::npos)
      cout<<"Gefunden an Position "<<p<<endl;
    else
      cout<<"nicht gefunden\n";
      getchar();
      getchar();
      clrscr();
    


  • std::string tmp;
    size_t p = str.find("tmp");
    

    das tmp darf nicht in anführungszeichen stehen, sonst sucht er nicht nach dem inhalt der variable tmp, sondern nach dem string "tmp".

    mfg,
    julian



  • OKay er findets nun, undzwar auf Position 43, wie kann ich jetzt das wort und die folgenden 4 wörter aus der liste entfernen?



  • Hallo!

    Also ich bin nun um einiges weiter mein Problem war, dass ich überhaupt erst falsch vorgegangen bin, vielen Dank an euch trotzdem!

    Nun habe ich ein anderes Problem, undzwar will ich die Liste mit den Benutzerangaben aufrufen aber er meldet ein linker fehler "ungelöste externe list() referenziert von ..."

    was mach ich falsch?

    void list(System *tmp, int anz)
    {
    
    	int i=0;
    	bool menu=false;
    	clrscr();
    	gotoxy(28,2); cout << "Benutzerliste"<< endl;
    	gotoxy(28,3); cout << "-------------"<< endl;
    
    	gotoxy(13,7); cout << "Benutzername: " << tmp[0].bname<<endl;
    	gotoxy(18,9); cout << "Vorname: " << tmp[0].vorname<<endl;
    	gotoxy(21,11); cout << "Name: " << tmp[0].name<<endl;
    	gotoxy(17,13); cout << "Passwort: " << tmp[0].pw<<endl;
    	gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[0].status<<endl;
    
    	gotoxy(11,20); cout << "Vorblaettern mit v "<<endl;
    	gotoxy(11,20); cout << "zuruecklaettern mit z "<<endl;
    	gotoxy(11,20); cout << "zurueck zum menue mit m "<<endl;
    
    	while(!menu)
    	{
    	 char bl=getchar();
    	 if (bl='z')
    	 {
    	  clrscr();
    	  i--;
    	  gotoxy(13,7); cout << "Benutzername: " << tmp[i].bname<<endl;
    	  gotoxy(18,9); cout << "Vorname: " << tmp[i].vorname<<endl;
    	  gotoxy(21,11); cout << "Name: " << tmp[i].name<<endl;
    	  gotoxy(17,13); cout << "Passwort: " << tmp[i].pw<<endl;
    	  gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[i].status<<endl;
    	 }
    	 else if (bl='v')
    	 {
    	  clrscr();
    	  i++;
    	  gotoxy(13,7); cout << "Benutzername: " << tmp[i].bname<<endl;
    	  gotoxy(18,9); cout << "Vorname: " << tmp[i].vorname<<endl;
    	  gotoxy(21,11); cout << "Name: " << tmp[i].name<<endl;
    	  gotoxy(17,13); cout << "Passwort: " << tmp[i].pw<<endl;
    	  gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[i].status<<endl;
    	 }
    	 else if (bl='m')
    	 {
    	  menu=true;
    	 }
    	}
    
    }
    


  • Hamdi schrieb:

    [...] aber er meldet ein linker fehler "ungelöste externe list() referenziert von ..."

    was mach ich falsch?

    Du hast list() nicht vor dem ersten Aufruf deklariert? Die Signatur deiner Funktion list() stimmt nicht mit der Implementation überein?

    greetz, Swordfish



  • Thx hast recht nicht vollständig deklariert im header datei,

    nun tut er aber beim aufrufen dieser funktionen u.a. den bildschirm nicht löschen obwohl da clrscr() steht und gibt ausserdem Überschrift nicht aus?



  • Hamdi schrieb:

    Thx hast recht nicht vollständig deklariert im header datei,

    nun tut er aber beim aufrufen dieser funktionen u.a. den bildschirm nicht löschen obwohl da clrscr() steht und gibt ausserdem Überschrift nicht aus?

    kann es sein dass er gleich in die schleife springt? kann ich das verhindern?



  • edit falsch gelandet


Anmelden zum Antworten