Traverse-DATEI Zeile für Zeile mit fscanf

Ok also ich habe eine text-Datei database.txt.

Jede Zeile ist ein Benutzer mit dem folgenden format

"John Smith"| 4| 80.00| "123 Lollipop Lane"| "New Jersey"| "08080"  

Wenn ich versuche, Folgendes tun:

database = fopen(fileName,"r"); 
    while(fscanf(database,"%[^\n]", buffer) != EOF){ 
        printf("ATTEMPT TO: Insert user %s\n\n", buffer); 
        if (insert_Customer(clients, create_Customer(buffer)) < 0){ 
            printf("\nERROR: Failed to insert and create customer %s\n", buffer); 
        } 
        else printf("\nSUCCESS: Inserted Customer %s\n\n", buffer); 
    } 

Läuft es gut für die erste Zeile, Versand in die GESAMTE Zeile, um die create_Customer(char * Puffer) Funktion. Aus irgendeinem Grund verstehe ich nicht, nach der ersten Zeile, es ständig versucht zu senden "John Smith", anstatt sich auf die nächste Zeile. Ich glaube, mein format ist falsch aber ich kann nicht herausfinden, wie das zu erreichen ist, was ich versuche zu erreichen ist diese Datei zu Lesen, Zeile für Zeile, und übergeben Sie jede Zeile in den create_Customer Funktion.

Überprüfen Sie den Rückgabewert von fscanf für die Anzahl von Zeichen Lesen nach dem ersten erfolgreichen Lesen. Auf eine wilde erraten, es ist 0 zurückgeben, weil du es gesagt hast, etwas zu Lesen außer eine neue Zeile

InformationsquelleAutor Brandon Amir | 2013-11-20

Schreibe einen Kommentar