aus datei in Array lesen



  • Hallo. Ich bin gerade dabei einen kleinen notenenditor zu programmieren.

    Nun habe ich die noten, die ich in dem array lied[] als integer gespeichert.
    Diese konnte ich auch schon mittels fopen und fprint in eine txt-datei schreiben.

    Dazu eben hier der Quelltext:

    Datei= fopen("lied1.txt","r+");
    
    for(i=0;i<Liedstelle;i++);
    {
       fprintf(Datei,"%i\n", lied[i]);	
    }
    for(i=0+lied[i];i<150;i++);
    {
       fprintf(Datei,"\n");
    }
    
    fclose(Datei);
    

    Da ich noch nie mit fopen/fprintf oder fgets gearbeitet habe,weiß ich jetzt noch nicht, wie ich es schaffen kann, dass der nun wenn ich öffnen auswähle, die hier geschriebenen daten wieder in den array schreiben kann.

    ich danke schoneinmal
    mfg Heida



  • So, wie du die Daten hier geschrieben hast, werden sie in Textform in deine Datei geschrieben - schonmal ein Vorteil. Da kannst du zum Lesen die Datei einfach mit fopen() öffnen und dann mit fscanf() alle Daten einlesen.

    (hast du Erfahrung mit scanf()/printf()? Wenn ja - abgesehen vom Ziel funktionieren fscanf()/fprintf() genauso)

    PS: Der Startwert (und die Aufgabe) der zweiten Schleife ist mir atm etwas schleierhaft.



  • Hallo,

    Warum arbeitest du mit C-Funktionen? Die dazugehörige Einlesefunktion heißt fscanf.
    Für C++ würde das so aussehen.

    std::ofstream Datei("lied1.txt");
    Datei << Liedstelle << "\n"; //Anzahl rausschreiben
    for(i=0;i<Liedstelle;i++);
    {
       Datei << lied[i] << " ";   
    }
    Datei << "\n"; //einmal reicht doch wohl
    Datei.close();
    
    std::ifstream ein("lied1.txt");
    ein >> Liedstelle;
    // Array der richtigen Größe erzeugen
    for(i=0;i<Liedstelle;i++);
    {
       ein >> lied[i];   
    }
    


  • also ich habe von stream noch keine ahnung.....deshalb weiß ich nicht welche header dateien hinuzugefügt werden müssen, ...
    ich habe jetzt den Quelltext von Braunstein in mein projekt übernommen und es kommt noch folgender fehler:

    std: Keine Klasse oder Namespace

    durch google konnte ich schon einige fehler durch das includen von <iostream.h> und <fstream.h> beheben



  • Hallo

    Der Header den du für die Filestreams brauchst ist

    #include <fstream>
    

    ohne .h

    bis bald
    akari


Anmelden zum Antworten