Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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;

Geschrieben

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.

Geschrieben

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.

Geschrieben
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.

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...