Fgets



  • Hey!!
    Möchte gerne den Inhalt eines Files auf einen String schreiben. Benutze dafür fgets. Nur das herrschende Problem ist, dass meine Daten in diesem externen File alle durch '\n' getrennt sind. Wie löste ich mein Problem??
    Thx



  • aus einer textdatei?



  • Die einfachste Möglichkeit wäre wohl das komplette File auf einmal zu lesen

    fseek(datei, 0, 2); // ans ende
    long groesse = ftell(datei);
    fseek(datei, 0, 0); // an den anfang
    char *puffer = new char[groesse];
    fread(puffer, 1, groesse, datei);
    

    Hat aber mit C++ nicht sooo viel zu tun (ausser die Speicherallokierung)



  • ja, aus einer Textdatei.
    Deine Lösung scheint ja recht schön und gut zu sein, aber ich habe die Befehle net zur verfügung. Ich habe nur standartdingssachen aus 1,5jahren unterricht zur verfügung... nix extravergantes. nur basiswissen.... leider



  • LoD schrieb:

    ja, aus einer Textdatei.
    Deine Lösung scheint ja recht schön und gut zu sein, aber ich habe die Befehle net zur verfügung. Ich habe nur standartdingssachen aus 1,5jahren unterricht zur verfügung... nix extravergantes. nur basiswissen.... leider

    Und wie öffnest du Dateien?

    mfg.



  • Also das sind drei Standard-C Dateibefehle 😉

    Und statt new kann man in C auch malloc nehmen, vielleicht kennt ihr das...



  • [/quote]
    Und wie öffnest du Dateien?

    mfg.[/quote]

    dateien öffnen via: interner_Filename=fopen("dateipfad", "verwendungsart");

    und für die Datei auf einen String zu schreiben, muss ich fgets verwenden und genau deswegen stecke ich in der zwickmühle, weil ja fgets nur solange einliest, bis '\n' kommt und meine datensätze aus meiner textdatei sind alle durch '\n' voneinander getrennt.



  • schon mal was von meher dimensionalen arrays gehört..??
    z.B. bei main(int argc, char **argv)
    reicht der tipp??
    p.s. ich lern erst seit nem halbern jahr c/c++
    und daher sollten deine 1.5 jahre kein prob sei ich hab erst 1/3 solangw erfahrung



  • Ahja... mein Programm sieht zZ so aus

    char txt[20];
    FILE *out;

    if((out=fopen(pfad, "r")) == NULL)
    fprintf(stderr, "\nDatei konnte nicht geöffnet werden.");

    else
    {
    if(fgets(txt, 20, out)!=NULL)
    printf("\n\nDer Inhalt lautet: %s ",txt);
    }

    Aber der Inhalt meiner zu öffnenden Datei ist aber:
    April
    Dorothe
    Ellen
    Gelilah
    Keira
    Madison
    Penelope
    Rose
    Serena
    Summer

    und ich kriege nur "April" für mein printf("Text, %s", txt);


Anmelden zum Antworten