In externe *.txt-Datei speichern



  • Hallo ich möchte aus einem C++ (Konsolenanwendung) in eine externe *.txt-Datei speichern, aber mir gelingt es nicht. Ich bin bei Hilfe sehr dankbar.

    Hier ist mein Quelltext:

    if(speichern[0]=='j')
    {	
    	Datei=fopen("PC1.txt","r+");
    	fprintf(Datei,"mainboardab\n");
    	fprintf(Datei,"mainboardan\n");
    	fprintf(Datei,"mainboardp\n");
    	fprintf(Datei,"mainboardop\n");		
    	fclose(Datei);
    }
    

    Dabei sollen in die Datei PC1.txt die jeweiligen 4 Variabeln, jede in einer Zeile, gespeichert werden.

    Meine Fehlermeldung ist folgende(Der Fehler tritt erst auf, wenn ich im Programm speichern möchte: http://www.imgimg.de/uploads/fehler42b1ab03GIF.gif



  • Anstatt r+ w+ verwenden. r+ ist nur zum lesen.



  • #include <fstream>
    using namespace std;
    
    int main()
    {
    	char speichern = 'j';
    	if(speichern == 'j')
             {   
    		ofstream Datei("c:\\PC1.txt");
    		Datei << "mainboardab\n";
    		Datei << "mainboardan\n";
    		Datei << "mainboardp\n";
    		Datei << "mainboardop\n";
    		Datei.close();
    	}
    }
    

    😉



  • Ich danke euch. Ich musste das "w+" zum speichern verwenden. Jetzt funktioniert alles wunderbar. 🙂



  • Ich habe das auchmal mit Eingaben versucht:

    ofstream Datei;
    Datei.open(Pfad);
    Datei << Text1;
    Datei << Text2;
    Datei << Text3;
    Datei << Text4;
    Datei << Text5;
    Datei << Text6;
    Datei << Text7;
    Datei << Text8;
    Datei << Text9;
    Datei << Text10;
            Datei.close();
    

    aber es wird kein "enter" erzeugt. Also kein
    [/code]
    Hallo
    Hallo
    BlaBla

    sondern ein:
    

    hallohalloblabla[code]
    wie bekmme ich es hin das in eine neue Zeile geschrieben wird?



  • ofstream Datei; 
    Datei.open(Pfad); 
    Datei << Text1 << '\n'
          << Text2 << '\n'
          << Text3 << '\n'
          << Text4 << '\n'
          << Text5 << '\n'
          << Text6 << '\n'
          << Text7 << '\n'
          << Text8 << '\n'
          << Text9 << '\n'
          << Text10 << '\n';
    Datei.close();
    

    Die << und >> -Operatoren können gestaffelt werden.Daher nur einmal "Datei"
    das Datei.close() könnte auch weggelassen werden, es wird automatisch erledigt wenn das ofstream-Objekt zerstört wird.
    Zu guter letzt könnte man noch das .open() mit in den Konstruktor packen.



  • ofstream Datei;
    Datei.open(Pfad);
    Datei << Text1 << "\n";
    Datei << Text2 << "\n";
    Datei << Text3 << "\n";
    Datei << Text4 << "\n";
    Datei << Text5 << "\n";
    Datei << Text6 << "\n";
    Datei << Text7 << "\n";
    Datei << Text8 << "\n";
    Datei << Text9 << "\n";
    Datei << Text10 << "\n";
    Datei.close();
    

    Edit-> mein cmd + c und cmd + v ist zu langsam 🙂



  • The-Kenny schrieb:

    ofstream Datei; 
    Datei.open(Pfad); 
    Datei << Text1 << '\n'; 
          << Text2 << '\n'; 
          << Text3 << '\n'; 
          << Text4 << '\n'; 
          << Text5 << '\n'; 
          << Text6 << '\n'; 
          << Text7 << '\n'; 
          << Text8 << '\n'; 
          << Text9 << '\n'; 
          << Text10 << '\n'; 
    Datei.close();
    

    Die << und >> -Operatoren können gestaffelt werden.Daher nur einmal "Datei"

    Dann musst du aber die Strichpunkte hinten weglassen 😉



  • darthdespotism schrieb:

    The-Kenny schrieb:

    ofstream Datei; 
    Datei.open(Pfad); 
    Datei << Text1 << '\n'; 
          << Text2 << '\n'; 
          << Text3 << '\n'; 
          << Text4 << '\n'; 
          << Text5 << '\n'; 
          << Text6 << '\n'; 
          << Text7 << '\n'; 
          << Text8 << '\n'; 
          << Text9 << '\n'; 
          << Text10 << '\n'; 
    Datei.close();
    

    Die << und >> -Operatoren können gestaffelt werden.Daher nur einmal "Datei"

    Dann musst du aber die Strichpunkte hinten weglassen 😉

    Hast natürlich recht.
    Das ist eine Tücke von Copy&Paste *g*

    Habs oben mal korrigiert.


Anmelden zum Antworten