Dateien einlesen



  • Hallo zusammen,

    ich möchte gerne aus einer textdatei einen text einlesen
    zum beispiel eine tabelle.

    hannelore musternachname 34 berlin musterstrasse 323
    karl mustermann 54 Cottbus musterfeld 2
    

    ich hab es wie folgt bis jetzt verwirklicht:

    FILE *pf;
    char ausgabe;
    int i;
    
    pf = fopen ( "tabelle.txt", "r" );
    
    if (feof(pf))
    {
    break;
    }
    else
    for (i=0; i<=1000; i++)
    ausgabe = fgetc(pf);
    printf("%c", ausgabe);
    

    das gefällt mir aber nicht ganz wegen der schleife das ist ehr geschummel als irgendwas anderes. wie kann ich das richtig verwirklichen?

    mfg
    Wodka-RedBull



  • uups falscher code das war mein zweiter versuch
    so hier der code mit der angesprochenen schleif:

    FILE *pf;
    char ausgabe;
    int i;
    
    pf = fopen ( "tabelle.txt", "r" );
    
    for (i=0; i<=534; i++)
    {
    ausgabe = fgetc(pf);
    printf("%c", ausgabe);
    }
    

    mfg
    WOdka-RedBull



  • Das sieht mir eher nach C aus und nicht nach C#. In C# gibt es deutlich bessere Möglichkeiten auf Daten zuzugreifen. Schau dir mal FileStream/WriteStream/ReadStream an.

    Unter C solltest du die komplette Datei Zeile für Zeile (auf Eof prüfen) einlesen und bei jeder Zeile sscanf(...) verwenden. Etwa so:

    while(!eof(file))
    {
        //Zeile in char buffer[xy] einlesen
        sscanf(buffer, "%s %s %d %s %s %d", vorname, nachname, nummer, ...);
    }
    

    Und das bitte als Pseudocode ansehen, da mein C bestimmt schon seit 3 Jahren aufm Dachboden schlummert ;).

    P.S.: Hier würde sich wohl eine Struktur anbieten.


Anmelden zum Antworten