#include <fstream> Text EIN/AUSgabe

Code:
int highscore;
    
    cout << "Neuer Highscore: ";
    cin >> highscore;
    
    ofstream Output ( "Highscore.hsc" , ios::binary );
    Output.write ( (char*)&highscore , sizeof ( highscore ) );
   
    Output.close();

so meine frage ist nun wie bekomme ich noch eine eingabe in die datei highscore.hsc
ich habe schon alle möglichen variationen ausprobiert aber es hat nie geklappt o0
muss ich mir für jede eingabe eine neue datei anlegen ?

meine zweite frage ist wieso bei dieser funktion die typen umwandlung so erfolgt ?
Code:
(char*)&highscore
geht das nicht normaler weise so: static_cast <typ> (ausdruck) ?



vielen dank
 
so meine frage ist nun wie bekomme ich noch eine eingabe in die datei highscore.hsc
ich habe schon alle möglichen variationen ausprobiert aber es hat nie geklappt o0
Um Daten an die Datei anzuhängen musst du entweder im zweiten Parameter des Konstruktors noch das Flag std::fstream::app anhängen oder den Filepointer einfach auf das Ende der Datei setzen:

Code:
stream.seekg(0,std::ios::end);

(char *) &highscore ist einfach nur die C-Variante zu static_cast.
 
Code:
int highscore;
int punkte = 100;
    
    cout << "Neuer Highscore: ";
    cin >> highscore;
    
    ofstream Output ( "Highscore.hsc" , ios::binary );
    Output.write ( (char*)&highscore , sizeof ( highscore ) );
   
    Output.close();
Danke für die Antwort aber ich muss gestehen das ich mir nicht ganz vorstellen kannwie das aussehen soll.
Könntest du mir anhand meines Beispiels die Variable punkte mit in die Datei schreiben ?


Vielen Dank
 
Du willst Daten an das Ende einer Datei anhängen? Wie du den Filepointer(den "Curser" an dem du gerade liest/schreibst) mittels seekg(Sehr gute Referenz, solltest du dir speichern) setzt habe ich dir bereits gezeigt. Wenn du nicht weißt, wo das hingehört solltest du dir vielleicht noch mal einige Texte zu Streams anschauen.
 
Also: Das "std::fstream::app" soll in die Optionen vom "ofstream Output" eingebaut werden:

Code:
ofstream Output ( "Highscore.hsc" , ios::binary | std::fstream::app);

Du solltest aber die Empfehlung ernst nehmen, ZUERST zu lernen, wie man SEHR GUTE ud EXISTIERENDE Dokumentationen benutzt, um Trivialfragen zu klären. Weil: Das hier ist eine und zeigt, daß Du noch elementare Angelegenheiten der Syntax der Sprache zu lernen hast; und das solltest Du tun, BEVOR Du Dich mit komplexeren Angelegenheiten befaßt tun! Also: Lerne ZUERST mal, WAS Argumente von Funktionen sind! DANN, DASS man bei denen Ausdrücke übergeben kann! DAZU, was Ausdrücke überhaupt sind! DANN, wo man die Dokumentation zu den Funktionen und den möglichen Ausdrücken und den Wertebereichen von Argumenten und deren Sinn findet!
 
Zurück
Oben