datei.put XOR
-
Also ich habe folgenden Quellcode:
#include<iostream> #include <fstream> #include <string> using namespace std; int main(){ ifstream leseDatei ("eingabe.txt", ios::binary); ofstream schreibeDatei("ausgabe", ios::binary); ofstream schreibeDatei2("ausgabe2.txt", ios::binary); ifstream leseDatei3("ausgabe", ios::binary); string Schluessel; cout <<"Bitte Schluessel eingeben: " ; getline(cin,Schluessel); int SchluesselLaenge=Schluessel.size(); char x; char y; int i=0; while(leseDatei.get(x)){ schreibeDatei.put(x ^ Schluessel[i]); i++; if(i>=SchluesselLaenge)i=0; } i=0; while(leseDatei3.get(x)){ schreibeDatei2.put(Schluessel[i]^x); i++; if(i>=SchluesselLaenge)i=0; } exit(0);
Das Programm soll dateien mit Xor verschlüsseln. Doch irgendwie wenn ich eine txt Datei verschlüssle ist die ausgabe2.txt leer...
Hoffe jemand kann mir helfen
Danke.
-
Sorry für den doppelpost aber ich kann nicht editieren ...
Wenn ich eine Pdf datei verschlüssle wird sie zwar als pdf erkannt aber ich kann sie nicht aufmachen es scheint als wäre sie beschädigt...
-
X0R schrieb:
Sorry für den doppelpost aber ich kann nicht editieren ...
Wenn ich eine Pdf datei verschlüssle wird sie zwar als pdf erkannt aber ich kann sie nicht aufmachen es scheint als wäre sie beschädigt...Weil du das Dateiformat zerstörst.
-
zum zeitpunkt des öffnenes ist 'ausgabe' wahrscheinlich leer oder existiert noch noch nicht mal. deshalb geht das lesen wohl schief. mach das ganze am besten in einer schleife oder öffne 'ausgabe' zum lesen, nachdem sie vollständig beschrieben und geschlossen wurde. warum benutzt du diese doofen istream/fstream-sachen? nimm besser FILE*-funktionen. bei denen ist der ablauf besser ersichtlich.
-
Wenn ich die Datei ausgabe schließe und dann ausgabe2 aufmache funktioniert es denn mir scheint erst beim schließen der datei oder beim ProgrammEnde wird es gespeichert und so gab es für eingabe3 nichts zum lesen...
DANKE