Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Text wird falsch in Datei gespeichert

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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;

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.

Die ersten Zeichen im ASCII-Code sind Steuerzeichen und können üblichweise nicht ausgegeben werden. Lass die für deine Kodierung am besten weg.

  • Autor

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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.