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.