Maximilan andersen



  • Hallo schreibe grad eine caesar cheff. haut auch alles ganz gut hin bis zur entschlüsselung. Hier mal der code:

    void msvdecoded(int key, FILE *in, FILE *out){
             // Variablendeffinition -belegung
                   char c;              // Zwischenspeicher fuer ein zeichen
                   int cta;             // Speicher fuer assci wert von c
    
           // Zeichen fuer Zeichen einlesen (+ interner Puffer in der Struktur FILE) ...
                   while ((c = fgetc(out)) != EOF) {
                         // ... Zeichen maniepulieren ...
                            // Zeichen in assci umwandeln
                               cta = c;
                            // maniepulieren, zu beachten ergebniss > 0
                               cta = ((cta - key) % 256);
                            // assci in zeichen umwandeln
                               c = cta;
                         // ... und jedes Zeichen in die neue Datei schreiben
                            fputc(c,in);
                   } 
        }
    

    Ich hab nun folgendes problem ich übergebe an die Funktion zwei bereits geöffnete Datein in der einen (out) befindet sich mein cheffrierter text in die andere soll der entschlüsselte text geschrieben werden, jetzt erhalte ich aber nur eine leere datei anstatt eines wieder lesbaren textes :(( es funktioniert jedoch wenn ich einen einigermaßen kleinen schlüssel habe aber das ist ja nicht sinn der sache, ich finde jedoch auch keinen fehler hoffe mir kann jemand helfen vielen dank im vorraus.



  • Schau nochmal nach was für einen Typ fgetc zurückgibt. Kannst du hier nachlesen: http://www.cplusplus.com/reference/clibrary/cstdio/fgetc/
    Da knnst du auch noch sehen, was fputc erwartet.

    Und überleg nochmal ob du in und out wirklich in dieser Weise verwenden willst.


  • Mod

    Bitte wähle brauchbare Threadtitel.



  • Er hat Titel und Namen verwechselt.
    So wie in und out.
    assci


Anmelden zum Antworten