Zum Inhalt springen

Text wird falsch in Datei gespeichert


Shadowman

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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