Shadowman Geschrieben 23. März 2007 Geschrieben 23. März 2007 Zwecks Verschlüsselung soll ich ein char array in einer Textdatei speichern. Zur kontrolle soll das Programm jedoch auch den verschlüsselten String ausgeben können. Zu meinem Problem: Der Text in der Datei und der Text im Programm sind total unterschiedlich. Datei: zw‰D‰ŠD{„DÅ {‰ŠD|‹{ˆDzw‰D|wy~„|…ˆƒwÅ Â{ˆD|…ˆ‹ƒ Programm: ol~9t~9pty9p~9q€p}9ol~9qlnstyqz}xltvp}9qz}€x Es läuft die gleiche Routine ab...nur die Ausgabe ist halt entweder in eine Datei oder auf die DOS Oberfläche. kann mir ma bitte jemand erklären woran das liegt? ich vermute mal am Zeichensatz, da ich eben noch etwas umgestellt hatte und dann in der Datei das "ol..." stehen hatte und auf dem bildschirm etwas ganz anderes. Gruß Sven Zitieren
Klotzkopp Geschrieben 23. März 2007 Geschrieben 23. März 2007 Du wirst uns schon den Code zeigen müssen... Zitieren
Shadowman Geschrieben 23. März 2007 Autor Geschrieben 23. März 2007 Das ist die Funktion die verschluesselt: void caesar(char text[255], int k) { char neu[255]; int wert=0; int i=0; while(text[i]!=0) { wert = (int(text[i])+k); if(wert>255) { wert -= 255; } neu[i]=char(wert); i++; } neu[i]=0; strcpy( text , neu); } So gebe ich in der DOS Anwendung aus: caesar(text,caes); cout << text << endl; und so speichere ich in eine Datei: caesar(text,caes); datei2 << text; Zitieren
Klotzkopp Geschrieben 23. März 2007 Geschrieben 23. März 2007 Das kann ich so nicht reproduzieren. Wahrscheinlich steht bei den beiden Varianten schon vor dem Aufruf von caesar etwas anderes in text. Kannst du ein vollständiges Minimalbeispiel zeigen? Oder ist es wirklich so, dass du caesar aufrufst, dann auf der Konsole ausgibst, dann nochmal caesar aufrufst, und dann in die Datei schreibst? Dann ist es logisch, dass in der Datei etwas anderes steht, weil du dann den Text in der Datei zweimal verschlüsselt hast. Zitieren
Jan Jansen Geschrieben 23. März 2007 Geschrieben 23. März 2007 Die ersten Zeichen im ASCII-Code sind Steuerzeichen und können üblichweise nicht ausgegeben werden. Lass die für deine Kodierung am besten weg. Zitieren
Shadowman Geschrieben 26. März 2007 Autor Geschrieben 26. März 2007 es ist so, dass ich eine datei als quelle auswähle, in der sich wärend der verschlüsselung nichts ändert. dann führe ich den punkt ausgabe in datei aus, gehe zurück und führe ausgabe auf dem bildschirm aus...und dann komme ich zu einem unterschiedlichen ergebnis. ich werde jetzt aber warscheinlich so arbeiten, dass ich den buchstabenbereich von 33-126 machen werde. das sollte er dann alles ohne probleme machen, weil das ja nur die standard zeichen sind plus die buchstaben. Zitieren
Klotzkopp Geschrieben 26. März 2007 Geschrieben 26. März 2007 dann führe ich den punkt ausgabe in datei aus, gehe zurück und führe ausgabe auf dem bildschirm aus...und dann komme ich zu einem unterschiedlichen ergebnis.Wenn du in beiden Fällen die caesar-Funktion aufrufst, dann ist das doch logisch. Nach dem ersten Aufruf stehen doch bereits verschlüsselte Daten in dem Array text. Wenn du dann für die Ausgabe auf dem Bildschirm nochmal caesar aufrufst, wird der bereits verschlüsselte Text nochmals verschlüsselt. Oder liest du die Daten nochmal neu ein? Zeig doch bitte mal ein wenig mehr Code, dann kommen wir dem Problem vielleicht auf die Schliche. Zitieren
Shadowman Geschrieben 28. März 2007 Autor Geschrieben 28. März 2007 problem hat sich erledigt...habe den zeichensatz auf ascii 32-126 begrenzt und schon geht es Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.