Anfängerfrage!



  • Hallo
    Ich hab folgendes problem...
    ich hab ein programm das in einem file nach einem
    namen suchen sollte und dan auch diese ganze zeile ausgeben soll
    wo dieser name gefunden wurde. Hab auch schon ein bisschen damit experementiert aber leider nur mit einzelne buchstaben geschafft!
    Ich hoffe ihr könnt mir helfen!

    while((c=fgetc(fp))!=EOF)
       {
            for(int i=0;i<=zeile[101];i++)
            {
                 zeile[i]= fgetc(fp);
    
                 if(zeile[i]==buchstabe)
                 {
                    b++;
                 }
            }
    
        }
    
        cout << buchstabe << " = "<< b << endl;
        fclose(fp);
    


  • da gibts ne Funktion strstr() in der string.h
    die würd ich nehmen..



  • 1. Du mischt C und C++. Solltest dich entscheiden welche Sprache du verwenden willst.
    2. Wenn du in einer Zeile einen bestimmten Substring suchen willst dann solltest du das File auch zeilenweise einlesen und den string dann auch in dieser Zeile suchen.
    Da wir hier im ANSI C -Forum sind: sieh dir mal die folgenden funktionen an

    char *fgets(char *s, int n, FILE *stream);    // zeile lesen aus file
    char *strstr(const char *s1, const char *s2); // substring suchen
    

    Kurt



  • Danke sehr^^
    doch leider hab ich keine ahnung wie sie zu verwenden
    hab das mal so versucht:

    car zeile[101];
       char suche;
       cout << endl;
       cout << "Name der gesucht werden soll: ";
       cin >> suche;
    
      FILE *fp=fopen("test.txt", "r");
    
      if (fp==NULL)
     {
       cout << "Datei nicht gefunden" <<endl;
       exit(1);
     }
    
     if (strstr(zeile, suche))
     {
         cout <<"Test" << endl;
     }
    


  • Also dein größtes Problem ist wohl, dass du einfach nichts aus der Datei liest. Wie soll strstr() dann was finden?

    Hint: fgets()


Anmelden zum Antworten