Daten verschlüssel
-
Hallo, ich bin neu hier und habe eine Frage:
Ich habe ein Programm geschrieben das eine Datei einliest, in einem String speichert und dann folgend verändert:
for(string::iterator iter=text.begin(); iter!=text.end(); ++iter) { *iter=~*iter; }...und dann wieder in der Datei speichert.
Bei Textdateien funktioniert das perfekt, aber bei anderen Dateien wie zB.: *.jpg
funktioniert das widerum nicht.
Liegt das am Programm oder an dem Dateiformat?
-
Wird die Datei binär gelesen?
-
-
nein
file.open(pfad.c_str(), fstream::in); string inhalt; char c; while(file>>c) { inhalt+=c; }sorry, mein Programmierstil ist nicht besonders gut
, ich programmiere C++ erst seit ein paar Monaten.Gruß
tuxer
-
tuxer schrieb:
nein
file.open(pfad.c_str(), fstream::in); string inhalt; char c; while(file>>c) { inhalt+=c; }sorry, mein Programmierstil ist nicht besonders gut
, ich programmiere C++ erst seit ein paar Monaten.Gruß
tuxerfile.open(pfad.c_str(), fstream::in | fstream::binary);
-
Danke
werde ich einmal ausprobieren.
-
tuxer schrieb:
Danke
werde ich einmal ausprobieren.Und wenn du dich beim ersten mal vertippst?

-
ich habe es jetzt mit |fstream::binary kompiliert
und vertippt habe ich mich nicht :p , aber ich habe das Programm jetzt wieder bei einer *.jpg Datei versucht. Funktioniert aber auch nicht und jetzt löscht das Programm die Leerzeichen in einer Textdatei!und wie wäre es in einem Bitset zu speichern?
nur ich weiß nicht wie man einen String in ein Bitset umwandelt, denn die Größe des Bitsets muss schon bei der Definition feststehen.
-
Vergleich dies mal mit deinem Programm:
#include<fstream> using namespace std; int main() { char File[256]={0},OutFile[256]={0}; cout<<"Dateiname eingeben : "<<flush; cin.getline(File,255); cin.seekg(0L,ios::end); strcpy(OutFile,"_"); strcat(OutFile,File); ifstream In(File,ios::in|ios::binary); if(!In.good()) { cout<<"Fehler beim Oeffnen der Lese-Datei "<<File<<endl; cin.ignore(); return(-1); } ofstream Out(OutFile,ios::out|ios::binary|ios::trunc); if(!Out.good()) { cout<<"Fehler beim Oeffnen der Ausgabe-Datei "<<OutFile<<endl; cin.ignore(); return(-2); } char c=In.get(); while(!In.eof()) { Out.put(~c); c=In.get(); } cout<<"Programm erfolgreich beendet!"<<endl; In.close(); Out.close(); cin.ignore(); return(0); }
-
Was heißt "funktioniert nicht"?