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
Klotzkopp Geschrieben 23. März 2007 Geschrieben 23. März 2007 Du wirst uns schon den Code zeigen müssen...
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;
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.
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.
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.
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden