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?



  • Oder konreter:
    ios_base::binary.

    Gruß,

    Simon2.



  • 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ß
    tuxer

    file.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"?


Anmelden zum Antworten