Probleme mit fgets in while



  • Hallo!

    Ich habe folgenden Code:

    int ActualLine = 0;
            int LineNumber = 1;
    
            char Line[100];
            while (ActualLine < LineNumber)
            {
                    fgets(Line, 102, File);
                    ReadText->Text == Trim((AnsiString)Line);
                    ActualLine++;
                    Label1->Caption = ActualLine;
            }
    

    File, ReadText und Label1 sind global.
    Warum geht ActualLine mal zufällig auf 10 oder irgendeinen Wert und warum bricht die while-Schlaufe nicht nach einem Durchgang ab? Kann mir irgend jemand helfen?
    Danke im Voraus!

    Gruss

    Wild



  • Hallo,

    int ActualLine = 0;
    int LineNumber = 1;
    char Line[100];
    while (ActualLine < LineNumber)
    {
        fgets(Line, 102, File); // Warum hier 102? Sollte wohl eher 99 sein.
        ReadText->Text == Trim((AnsiString)Line); // statt == besser =
        ActualLine++;
        Label1->Caption = ActualLine;
    }
    


  • Hallo!

    Besten Dank für die schnelle Antwort. Hat jetzt geklappt:

    int ActualLine = 0; 
    int LineNumber = 1; 
    char Line[101];             // 100 Zeichen muss ich auslesen und zusätzlich
                                   noch das \n 
    while (ActualLine < LineNumber) 
    { 
        fgets(Line, 102, File); // Hier miss 1 mehr sein als der char Array. Nach
                                   Beschreibung kann dieser Wert auch zu gross sein
                                   liest nur bis \n oder aber auch nicht :-)
        ReadText->Text = Trim((AnsiString)Line); // == der ist mir reingerutscht... 
        ActualLine++; 
        Label1->Caption = ActualLine; 
    }
    

    Nochmals dankeschön!

    Gruss



  • In dein char-Array passen nur 101 Zeichen (inklusive 0) hinein. Du kannst also keine 102 Zeichen darin einlesen.


Anmelden zum Antworten