Probleme bei Zeichen Darstellung

Nee, ich war noch richtig altmodisch (meinem Alter angepasst) analog beim Schlachter meines Vertrauens :slight_smile:

Zeile 36/36 im zweiten Tab: Da begrenzt Du ja sinnvollerweise schon den Index in den Code-Speicher. Das genau ist die Stelle, wo "Code zu lang" schon erkannt wird.

    default : code[counter] = key;  // just add the keystroke to the code
      if (counter < sizeof(code) - 1) counter++;

Allerdings bleibst Du da einfach auf der letzten Ziffer stehen.
Ohne es compiliert oder getestet zu haben (einfach trocken heruntergetippt):

    default :
      code[counter] = key;  // just add the keystroke to the code
      counter++;
      if (counter >= sizeof(code) ) 
      {
        // Jetzt ist es zu lang.
        counter = 0;
        // fällt dann durch auf return 0 am Ende der Funktion
      }
     else
     {
       // Noch innerhalb des Bereichs, aber noch nicht fertig
       // Die return-Werte waren noch nicht eindeutig: 
       // 0 wurde sowohl bei falschem Code als auch bei Code-Eingabe noch nicht fertig zurückgegeben.
       // Das ist zwar im Ergebnis das gleiche, aber ich würde die Fälle unterscheiden.
       return 3;
     }
     break;  // den hattest Du auch noch vergessen - würde bei ausführlichen Compilerwarnungen angemeckert.

Viel Erfolg - jetzt gehe ich Mittagessen kochen!