textverschlüsselung



  • Hallo,

    ich versuche ein Programm zu schreiben das einen Text mit verschieden Zahlen + nimmt. Dadurch soll der Text verschlüsselt werden. (z.b. A + 2 = C). Das Problem ist das das nicht Funktioniert. (Absturtz oder keine veränderung am Text)

    int verschluesselung(short auswahl_verfahren)
    {
        long pos1 , pos2;
        const long  pos_fest = sicherheitsebene;
        char *zeiger1 = &text[0];
    
        if(auswahl_verfahren == 1)
        {
    
                        if(frequenz2 == 1)
                        {
    
     /* | */                                 if(frequenz == 1)
                                             {
                                                         for(pos1 = 0 ; pos1 <= 300 ; zeiger1++ , pos1++)
                                                         {
    
                                                                  *zeiger1 = *zeiger1 + code[pos2][pos_fest]; // Frequenz2 = 1 Frequenz = 1
    
                                                         if(pos2 == 9)
                                                                 pos2 = 0;
    
                                                         pos2++;
                                                         }
                                             }
    
    // und so weiter der rest ist uninteressant
    

    Die Variablen sicherheitsebene bestimmt welcher Zahlencode zum verschlüsseln angewendet werden soll.
    Die Variable Text[301] ist der Text der verschlüsselt werden soll.
    frequenz und frequenz2 bestimmen die Art der verschlüsselung (plus, minus, von rechts nach links, umgedreht, von oben nach unter etc

    Das feld code [10][10] enthält 100 einstellige zahlen

    Bitte seit nicht zu hart mit mir, bin noch am lernen 🙂

    EDIT : und blutiger Anfänger



  • Auf die Schnelle:
    pos2 ist nicht initialisiert.
    zeiger1 wird nicht weiter gezählt.



  • NoName57253 schrieb:

    Das Problem ist das das nicht Funktioniert. (Absturtz oder keine veränderung am Text)

    Schwierig, das mit den vorhandenen Informationen zu klären. Zeig mal ein (möglichst kurzes) lauffähiges Programm, dann findet sicher bald jemand den Fehler.



  • mngbd schrieb:

    NoName57253 schrieb:

    Das Problem ist das das nicht Funktioniert. (Absturtz oder keine veränderung am Text)

    Schwierig, das mit den vorhandenen Informationen zu klären. Zeig mal ein (möglichst kurzes) lauffähiges Programm, dann findet sicher bald jemand den Fehler.

    Kann ich das ganze Programm einfach als .htm datei ?

    DirkB schrieb:

    Auf die Schnelle:
    pos2 ist nicht initialisiert.
    zeiger1 wird nicht weiter gezählt.

    Ist doch Initialisiert oder was meinst du ?



  • NoName57253 schrieb:

    Ist doch Initialisiert oder was meinst du ?

    Wo wird vor Zeile 18 pos2 ein Wert zugewiesen?



  • pos2 ist irgendwas nur nicht initialisiert. Du hast es deklariert aber nie initialisiert. Es könnte also jeden Wert haben.



  • NoName57253 schrieb:

    Kann ich das ganze Programm einfach als .htm datei ?

    Wenn es mehr als, sagen wir mal, 100 Zeilen sind, nimm am besten einen Paste-Service wie http://codepad.org und mach hier einen Link dorthin. Wenn nicht, mach's genauso wie beim ersten Post. Bedenk dabei aber, dass die Chance, dass sich jemand das ansieht, sinkt, je mehr Zeilen das sind.

    NoName57253 schrieb:

    Ist doch Initialisiert oder was meinst du ?

    Eine Variable initialisieren bedeutet, ihr von Anfang an einen Wert zuweisen, so wie:

    int variable = 10;
    


  • Ok, hat sich erledigt, das wars schon gewesen. Ich hab jetzt pos2 = 0 geändert und es funktioniert. Hab vorher Basic programmiert. Da war alles immer automatisch 0



  • NoName57253 schrieb:

    Hab vorher Basic programmiert. Da war alles immer automatisch 0

    1. Vergiss die Annahmen und den Syntax von BASIC.
    BASIC ist, wie der Name schon sagt, für Anfänger.
    C ist für Fortgeschrittene.

    Es sind beides prozedurale Sprachen, aber das war es auch schon.

    2. Vergiss die Annahmen und den Syntax von BASIC.



  • DirkB schrieb:

    NoName57253 schrieb:

    Hab vorher Basic programmiert. Da war alles immer automatisch 0

    1. Vergiss die Annahmen und den Syntax von BASIC.
    BASIC ist, wie der Name schon sagt, für Anfänger.
    C ist für Fortgeschrittene.

    Es sind beides prozedurale Sprachen, aber das war es auch schon.

    2. Vergiss die Annahmen und den Syntax von BASIC.

    versuch ich, sonst würd ich ja garnichts auf die reihe kriegen. 😃 Hab mein erstes größeres projekt schon abgeschlossen.

    EDIT : Warum ist es eigentlich so das wenn ich ein Leerzeichen in ein scanfbefehl eingebe z.b.

    char text[1000];
    scanf("%s", &text[0]);
    

    das bei der eingabe : "Ich bins" nur das bins gepeichert wird ?



  • Weil das so definiert ist:
    http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

    Wenn du ganze Zeilen einlesen willst, kannst du fgets() nehmen.



  • Ah, danke 🙂


Log in to reply