Suche und Ausgabe aus Textdatei



  • Hey Leute!

    Seh mich folgender Aufgabe gegenüber und habe absolut keine Ahnung wie ich das machen soll. Hätte jmd evt einen Lösungsvorschlag?

    In einer Datei haben Sie die Telefonnummern ihrer Freunde und Bekannte in der Form:
    telefonnr.txt
    Albrecht Duerer 05111528456
    Lukas Cranach 051091553
    Nikolaus Kopernicus 05111543285
    Martin Luther 0141546629
    Ph i l l i p Melanchthon 014971560998
    Johann Reuchlin 05111522765
    . . .
    abgelegt. Schreiben Sie ein Programm, das zu einer eingegebenen Person (Nachname) die
    zugehörige Telefonnummer in der Datei sucht und ausgibt! Erstellen Sie zu Testzwecken eine
    Datei mit mindestens 20 Einträgen!
    Hinweis: Informieren Sie sich über den Datentyp FILE und die Funktionen fopen, fscanf, feof
    und fclose.

    Über die jeweiligen Funktionen habe ich mich informiert, kann sie jedoch nicht anwenden. Ich weiss nicht wie man in einer Textdatei einträge suchen kann und diese dann ausgibt. Kann mir jmd helfen?

    Danke im Vorraus :xmas2:



  • Ich weiss nicht wie man in einer Textdatei einträge suchen kann und diese dann ausgibt.

    Gar nicht. Du kannst nur einlesen und dann nachsehen, was angekommen ist.

    Ph i l l i p Melanchthon 014971560998
    ...
    Hinweis: Informieren Sie sich über den Datentyp FILE und die Funktionen fopen, fscanf, feof
    und fclose.

    Oje, da sind schrecklich viele Leerzeichen. Ich würde mich lieber über fgets() und strtok() informieren, und aus jeder Zeile den letzten Token mit dem Suchwert vergleichen.
    🙂



  • Könntest du mir evt ne Lsg in Form eines Quelltextes geben?
    Hab damit nämlich echt Probleme.

    Danke :xmas1:



  • Sixty69 schrieb:

    Könntest du mir evt ne Lsg in Form eines Quelltextes geben?
    Hab damit nämlich echt Probleme.

    Danke :xmas1:

    Pseudo Code?

    Solange Zeilen vorhanden:

    Zeile in einen Puffer einlesen, das Ende der Zeile suchen.
    ( Ein Zeilenende ist mit dem '\n' Zeichen(newline) abgeschlossen, findest du mit *p = strrchr(Puffer,'\n')).
    Vom letzten Zeichen beginnend rückwärts jedes Zeichen prüfen und die Leerzeichen zählen. Beim zweiten Leerzeichen mit scanf den Nachnamen einlesen.
    Wenn es der gesuchte Nachname ist, mit scanf die Nummer einlesen.

    Gruß,
    B.B.


Anmelden zum Antworten