Veröffentlicht 31. Januar 200916 j 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
31. Januar 200916 j Du suchst fgets. Beachte, dass diese Funktion das Zeilenvorschubzeichen mit zurückgibt.
31. Januar 200916 j ´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 200916 j von Golex
31. Januar 200916 j 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
31. Januar 200916 j 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...
31. Januar 200916 j 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'.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.