C++, Daten in externe Datei speichern



  • Hallo, wie kann ich die daten in eine externe datei speichern ??
    das ich mir die datei mit einem texteditor anschauen kann, und wie kann ich die daten dann wieder ins programm einlesen

    #include <fstream>
    #include <iostream>
    #include <conio.h>
    #include <iomanip>		
    #include <time.h>		
    #include <ctype.h>
    #include <string.h>
    using namespace std;
    
    void main ()
    
    {	int i,anzahl;
    	struct personendaten
    	{
    		char vn [20];
    		char nn [20];
    		int al;
    	};
    
    	personendaten person[100];
    	printf ("Anzahl der zu erfassenden Personen: "); cin >> anzahl;
    	for (i=0;i<anzahl;i++)
    	{
    		printf ("Vorname : ");
    		cin >> person[i].vn;
    		printf ("Nachname : ");
    		cin >> person[i].nn;
    		printf ("Alter : ");
    		cin >> person[i].al;
    	}
    for (i=0;i<anzahl;i++)
    {
    	cout<<"\n Vorname \n"<<person[i].vn; 
    cout<<"\n Nachname \n" <<person[i].nn;
    
    cout<<"\n Alter \n"<<person[i].al; 
    }
    getch();
    
    }
    


  • suchfunktion oder c++ faq forum



  • //Um in die Datei schreiben
    ofstream datei;
    
    datei.open("Datei.txt", ios_base::out | ios_base::app);
    if (!datei)
        cout << "Fehler beim öffnen" << endl;
    else
    {
        datei << "String in die Datei schreiben" << endl;
        datei.close();
    }
    
    //um aus der datei zu lesen
    ifstream datei;
    
    datei.open("Datei.txt", ios_base::in);
    

    den rest solltest du schaffen 😉



  • In C++:

    1. Verwende die aktuellen Header
    2. Kein void main()
    3. Ein/Ausgabe komplett in C++ und nicht mischen mit C

    Danach schreibst du folgendermaßen in Dateien:

    ...
    
    ofstream out("datei.txt");
    for(unsigned int i = 0; i < anzahl; ++i)
         out << vn << " " << nn << " " << al << endl;
    
    ...
    

    aus Dateien lesen:

    ...
    
    ifstream in("datei.txt");
    if(in.is_open())
    {
         string str;
         while(getline(in, str))
              cout << str << endl;
    }
    ...
    

    //Edit: Zu spät...

    Caipi



  • thanx

    aber das mit den header und mit dem main hab ich so in der schule gelernt

    peer



  • gehört zu guten programmierstil, aber ist im prinzip egal 😉
    naja die neuen header würde ich schon verwenden (einfach das .h weglassen ist ja nicht sooo ein großes problem 😉

    ciao,
    stefan


Anmelden zum Antworten