Integer Array in txt Datei schreiben, lesen/ Werte durch Leerzeichen getrennt



  • Derzeit verfeinere ich mein Programm bezüglich RSA-Verschlüsselung. Dabei bin ich wieder auf ein kleines Problem gestoßen.
    Ich lese Zeichen ein, wandele die in ASCII und verschlüssele die ASCII-Werte. Die verschlüsselten Werte werden in ein Array gespeichert. Wie kann ich nun die Werte in eine Datei schreiben-die Werte sollen dabei durch ein Leerzeichen getrennt werden. Bzw.: Wie kann ich sie wieder heraus lesen?

    Bisher sieht das Code-Stückchen so hier aus:

    [code]
    for (int x=0; x<input.length(); x++) {
    	c[x]=my_pow2(int(input.at(x)),e,n);
    
    	cout << c[x] << " ";
    
    	}
    [/code]
    

    Vielen Daaaaaaaaaank 🙂


  • Mod

    Ersetze cout durch den Dateistream.



  • Das würde dann so aussehen:

    [code]	
    
    	//ASCII verschlüsseln
    	cout << "Das verschluesselte Wort lautet:" << endl;
    	for (int x=0; x<input.length(); x++) {
    	c[x]=my_pow2(int(input.at(x)),e,n);
    
    	fstream datei;
    	datei.open("copy.txt", ios::out);
    	datei << c[x] << " ";
    	datei.close();
    	cout << c[x] << " ";
    
    	}[/code]
    

    Das Problem ist dann, dass nur die letzte Zahl in die Datei geschrieben wird-was ja auch logisch ist. Wie kann ich das lösen?



  • Öffne die Datei vor der Schleife und schreib in der Schleife nur.

    Klar dass du so immer dein Zeichen äüberschreibst.



  • RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII
    RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII RAII



  • Und wo wird RAII hier nicht beachtet bei dem Schnipsel?
    ODer kommst jetzt wieder mit deinem fstream::close() ruft man nicht auf Quatsch?



  • Made my day



  • 314159265358979 schrieb:

    Made my day

    Obvious Troll is obvious.. um mal bei den Floskeln zu bleiben.



  • miri schrieb:

    Das Problem ist dann, dass nur die letzte Zahl in die Datei geschrieben wird-was ja auch logisch ist. Wie kann ich das lösen?

    Formatier deinen CODE vernünftig! (es folgt excessives geklammere)

    //ASCII verschlüsseln
        cout << "Das verschluesselte Wort lautet:" << endl;
    
        for (int x=0; x<input.length(); x++) 
        {
            c[x]=my_pow2(int(input.at(x)),e,n);
    
            {
                fstream datei;
                {
                    datei.open("copy.txt", ios::out);
                    {
                        datei << c[x] << " ";
                    }
                    datei.close();
                 }
            }
            cout << c[x] << " ";
        }
    

    Lies die API zu Zeug das du noch nie oder nur selten benutzt hast!

    http://www.cplusplus.com/reference/iostream/fstream/open/

    Wenn du die Datei schon 124358 mal öffnen und schliessen willst, nutze ios::app - oder überleg dir wie du das nicht brauchst indem du das öffnen/schließen nur einmal machst.

    😃 Und nutz nur dir CPP tags, nicht die CODE tags 😉



  • fstream datei;
        datei.open("copy.txt", ios::out);
    

    Du lügst, ich verwende RAII!!1


Anmelden zum Antworten