Problem beim Speichern von Dateien !!! DRINGEND !!!



  • Tach erstmal,
    ich muss vorwegschicken, dass wir erst seit kurzem c++ in der Schule lernen und deswegen noch nicht grad sehr weit sind...

    Wir sollen nun für ein Projekt unter anderem Profile verwalten, die in Dateien gespeichert werden um sie immer wieder neu aufzurufen, zu ändern etc...

    Ich habe die Daten des jeweiligen profils bis jetzt in einem Struct angelegt

    struct Tspieler
    {
      char name[20];
      int alter;
      int textcolor;
      int textbackground;
      int spiele;
      int besterg;
      float schnitt;
    };
    

    In der Mainfunktion:

    Tspieler struktspieler[3];
    

    Diese Daten weise ich folgendermaßen zu

    clrscr();
    
    cout<<"  Bitte geben sie ihren Namen ein "<<endl;
    cin>>struktspieler[i].name;
    cout<<"  Bitte geben sie ihr Alter ein "<<endl;
    cin>>struktspieler[i].alter;
    
    // etc....
    

    Wie kann ich es nun schaffen, die Daten dauerhaft in Dateien zu speichern ?

    fstream ??

    Danke schon mal....



  • Z.B. so:

    // in Dateien schreiben
    
    std::ofstream out("datei.txt");
    std::string str1("Hallo Welt!"), str2("Das ist ein Beispiel");
    
    out << str1 << std::endl; // Inhalt von 'str1' in Datei 'datei.txt' schreiben.
    // Neue Zeile
    out << str2 << std::endl; //  "      "   'str2' "   "       "          "
    
    //etc.
    
    // aus Dateien lesen
    std::ifstream in("datei.txt);
    if(in.is_open())
    {
        std::string str;
        while(getline(in, str)) // Eine Zeile aus der Datei 'datei.txt' lesen und nach 'str' schreiben
             std::cout << str << std::endl; // Ausgabe dieser Zeile
    }
    
    ...
    

    Für weiterführende und genauere Informationen siehe auch:
    http://www.cpp-tutor.de
    http://tutorial.schornboeck.net

    Caipi



  • Ich hab nur die ersten zwei Zeilen deines Quellcodes abgeschrieben und schon 3 fehler 😞

    Bitte erwarte nicht zuviel,bin - wie gesagt- neu auf dem Gebiet.

    ohhh. du hast noch editiert, dann versuch ich es nochmal!



  • wmfrs <-- bitte lesen!

    FAQ



  • kingruedi schrieb:

    <a target='_blank'href='http://tinyurl.com/ysokg'>Wie man Fragen richtig stellt</a> <-- bitte lesen!

    FAQ

    Das erklärt zumindest deine fast 12.000 Posts.....



  • oh man,....
    das funktioniert einfach nicht !!!
    kann mir vielleicht jemand eine andere Lösung liefern?

    Mit includes etc...?



  • Hallo,

    Hab es getestet.

    Viel spass 😃

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    struct datast {
    	string name;
    	string vorname;
    };
    
    int main(){
    	vector<datast> data;
    	char eingabe;
    	int i=0;
    	datast tmp;
    	do{
    		cout<<"Name: ";
    		cin>>tmp.name;
    		cout<<"Vorname: ";
    		cin>>tmp.vorname;
    		data.push_back(tmp);
    		tmp.name.clear();
    		tmp.vorname.clear();
    		cout<<"q = Quite; g = Go :";
    		cin>>eingabe;
    	}while(eingabe!='q');
    	if(!data.empty()){
    		ofstream dataf("test");
    		for(; i<data.size(); ++i){
    			dataf<<data[i].name<<" "<<data[i].vorname<<"\n";
    		} 
    	}
    	data.clear();
    
    	//test auslesen
    
    	ifstream indata("test");
    	for(i=0;!indata.eof();++i){
    		indata>>tmp.name>>tmp.vorname;
    		data.push_back(tmp);
    		tmp.name.clear();
    		tmp.vorname.clear();
    	}
    	indata.close();
    	return 1;
    }
    


  • Bewegungslegastheniker schrieb:

    oh man,....
    das funktioniert einfach nicht !!!
    kann mir vielleicht jemand eine andere Lösung liefern?

    Mit includes etc...?

    Also abgesehen von dem einen Fehler, ( in std::ifstream in("datei.txt) fehlte das " am Ende), hab ich meinen geposteten Code in eine main kopiert und noch folgende Header eingefügt.

    #include <iostream> // I/O
    #include <fstream>  // Filestream I/O
    #include <string>   // Die Klasse String
    

    Aber da du ja bereits in deinem ersten Post etwas von fstream geschrieben hattest, dachte ich, die includes wären klar.

    Btw. Ausserdem: Hast du dir den Link von kingruedi überhaupt angeschaut bzw. durchgelesen? Dann wäre dein weiteres Fragen unnötig gewesen.

    Caipi



  • structs würd ich immer als ganzes rein und rausschreiben...

    mystruct m;
    ofstream o ("test.txt");
    o.write((char*)&m,sizeof(mystruct));
    o.close();
    ifstream i("test.txt");
    i.read((char*)&m,sizeof(mystruct));
    i.close();
    

    Ansonsten, FAQ 🙄 da hat kingruedi schon recht...
    Und Forensuche gibts auch noch :p 😃

    Devil


Anmelden zum Antworten