Zeile aus Datei eingelesen, in nächster Zeile etwas suchen



  • Hallo,

    ich öffne eine Datei:

    while (( fgets( Zeile, 200, fpIn )) != NULL )		
        {
    
            !! HIER !!
    
        }
    
           fprintf( fpOut, "%s", Zeile );
    	}
        fclose( fpIn );
        fclose( fpOut );
    

    Nun muss ich aber, wenn ich etwas bestimmtes in der Zeile finde, in der nachfolgenden Zeile etwas suchen, um es in der aktuell eingelesen Zeile einzubauen.

    Ungefähr so:
    Falls HALLO in der nachfolgenden Zeile dann den anschließenden Zahlenwert übernehmen:

    Input

    Test
    HALLO 25
    Super

    OUTPUT

    TEST 25
    HALLO 25
    Super

    Wie kann ich in meinem Fall, die nächste Zeile einlesen ? fgets( Zeile+1, 200, fpIn )) funktioniert nicht.



  • indem du einfach wieder fgets aufrufst. Je nach Situation musst du eine andere Variable übergeben als Zeile, damit du dir deren Inhalt nicht überschreibst.

    Wenn du C++ schreibst, wäre es vermutlich angenehmer, dafür die fstreams zu verwenden. Wenn du C schreibst, bist du im falschen Forum...



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • standardkonform mit fgetpos/fsetpos:

    while ( fgets( Zeile, 200, fpIn ) )       
    {
      if( strstr(Zeile,"Test")==Zeile )
      { /* hier der Vorgriff auf naechste Zeile */
        char z[200]; fpos_t pos; fgetpos( fpIn, &pos );
        if( fgets( z,200,fpIn ) )
        {
          char y[200];
          if( 1==sscanf(z,"%*s%s",y) ) printf("Test %s",y);
        }
        fsetpos( fpIn, &pos );
      }
    }
    


  • Super ich danke euch !!


Anmelden zum Antworten