Zeilenweise einlesen? Hilfe!



  • Hallo!

    ich habe folgenden Quellcode:

    pfile = fopen ("zeichnis.txt", "r");
    char buf[2000];
    char* p;

    fgets (buf, sizeof buf,pfile);

    if (p = strchr (p, '\n'))
    *p = '\0';
    printf ("%c", buf);

    Ich würde ganz gerne zeilenweise auslesen, als Ergebnis bekomme ich in buf ein "Ö", wie kommt das?? 😕
    PS:
    Ist es möglich in einer string-variable Leerzeichen abzuspeichern??

    Danke, RawBurner



  • schau mal, welchen Typ buf hat. buf hat den Typen char*, wenn du nun den Inhalt von char***** ausgeben willst, dann ist es falsch den Ausgabe Parameter für char (ohne 😉 zu nehmen, was du willst ist %s und nicht %c und leerzeichen kannst du natürlich abspeichern.

    if (p = strchr (p, '\n'))
    

    du solltest p vorher initalisieren!



  • Hi!

    Danke für den Tippp, das läuft jetzt...außer dem Punkt mit 'p'

    Was heißt initialisieren und wie mache ich das??

    Sorry bin voll der Anfänger!

    MfG RawBurner



  • Das heißt im Prinzip, dass Du p einen Wert zuweisen solltest, bevor Du damit arbeitest. Selbiges geht jedenfalls aus Deinem Code nicht hervor.



  • Original erstellt von rawburner:
    fgets (buf, sizeof buf,pfile);

    if (p = strchr (p, '\n'))

    du liest die zeile in buf ein, suchst mittels strchr aber in p?
    wäre nicht korrekter: if (p = strchr (buf, '\n'))


Anmelden zum Antworten