Golex Geschrieben 31. Januar 2009 Geschrieben 31. Januar 2009 HI, ich soll einen Morphemerkenner Schreiben. Der Morphemerkenner an sich ist nicht das Problem, den hab ich fertig - dieser benötigt aber als eingabeparameter die Codezeile die er überprüfen soll. Ich muss also einer Text-File jeweils immer eine Zeile auslesen, dann in einem String speichern und an den Morphemerkenner übergeben. Dann wiederholt sich das Spiel für die nächste Textzeile. Leider hab ich keine Ahnung wie ich den Part mit dem Zeilen einlesen machen soll. Kann mir jemand helfen? P.s.: Da ich in C schreibe meine ich mit String ein Char-array. Also char*test Zitieren
Klotzkopp Geschrieben 31. Januar 2009 Geschrieben 31. Januar 2009 Du suchst fgets. Beachte, dass diese Funktion das Zeilenvorschubzeichen mit zurückgibt. Zitieren
Golex Geschrieben 31. Januar 2009 Autor Geschrieben 31. Januar 2009 (bearbeitet) ´Also wenn ich das ausprobiere sieht es wiefolgt aus: void morph(char*str) { ... } int main() { FILE *datei; char*puffer; datei=fopen("test.txt","r"); while(!feof(datei)) { fgets(puffer, 255, datei); morph(puffer); } getchar; } Allerdings stürzt das Prog immer ab wenn ich es Testen will. Kann mir jemand weiterhelfen? Bearbeitet 31. Januar 2009 von Golex Zitieren
Klotzkopp Geschrieben 31. Januar 2009 Geschrieben 31. Januar 2009 Dein puffer-Zeiger ist uninitialisiert, zeigt also irgendwo in den Speicher. Du hast fgets zwar mitgeteilt, dass der Zeiger auf einen Puffer der Größe 255 zeigt, aber das ja nun gelogen Zitieren
Golex Geschrieben 31. Januar 2009 Autor Geschrieben 31. Januar 2009 Dein puffer-Zeiger ist uninitialisiert, zeigt also irgendwo in den Speicher. Du hast fgets zwar mitgeteilt, dass der Zeiger auf einen Puffer der Größe 255 zeigt, aber das ja nun gelogen Jo, hab ich dann auch gesehn. Aber wie kann ich das Zeilenvorschubzeichen aus dem String entfernen? Habs mit ner schleife versucht welche an der entsprechenden Stelle im String einfach = NULL setzt, aber das funktioniert nur sporadische - keine Ahnung warum... Zitieren
Klotzkopp Geschrieben 31. Januar 2009 Geschrieben 31. Januar 2009 Habs mit ner schleife versucht welche an der entsprechenden Stelle im String einfach = NULL setzt, aber das funktioniert nur sporadische - keine Ahnung warum...Ich auch nicht - jedenfalls nicht, ohne den Code zu sehen. Üblicherweise prüft man, ob das letzte Zeichen ein Zeilenvorschub ist, und setzt es dann einfach auf '\0'. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.