1 Taste sperren



  • ehm immer wenn ich eine taste drück a-z oder A-Z

    dann kolabiert mein programm xD

    is in einer konsole geschrieben:)



  • LOL, dann ist die taste zu sperren nicht der richtige ansatz.



  • hier ma ein code schnipsel:)

    #include <iostream.h>
    #include <windows.h>
    #include <fstream.h>
    #include <string.h>
    #include <conio.h>
    int main(){
    do
    {
    cin>>a;
       switch (a)
       {
              case 1: break;
              case 2: break;          case 3: --dummheit;break;
              case 4: break;
              case 5: if (joker>0)
                         { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),2);
                           --joker;
                           cout<<"M"<<oe<<"gliche Antworten = 2 und 3"<<endl<<endl;
                           cout<<"      Antwort: ";
                           }
                           else if(joker<=0)
                          { 
                          SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),4);
                          cout<<"  Kein Joker verf"<<ue<<"gbar, bitte Eingabe  wiederholen: ";
                           }
       }//fall ende
    
                           {cout<<"lol";}
                           if (a>5)//bedingung ka geht einfach
                           {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
                            cout<<"Falsche Eingabe! Bitte Wiederholen ";}
    }while (a>4);
    

    wie gesagt geb ich jetzt in a ein a ein dann naja kolabiert er 😃
    des default in switch hab ich extra rausgenommen



  • welchen datentyp hat die variable 'a' ?



  • integer



  • ja ich weiß es kommt jetzt integer ist zahl bla bla:-D

    aber mit char funzt des genauso wenig glaub ich 🙂



  • ok, ich habs mal für mich kompiliert weil ich auf anhieb keinen sinn drin erkennen konnte 😃
    bis auf folgende änderungen:

    #include <fstream>
    #include <iostream>
    

    hab ich nur noch die variablen deklariert. also bei mir crasht da nüx

    😕



  • 😞 gemein wie is deine variable

    kann es auch daran liegen das ich System(color) benutze oder slepp



  • Gib ne Meldung aus, dass man auf keinen Fall auf A drücken darf.



  • int a, dummheit, joker;
    


  • rolf lol schrieb:

    Gib ne Meldung aus, dass man auf keinen Fall auf A drücken darf.

    lol, das wäre die microsoft lösung 😃



  • ok dann leigt es wohl daran an system bla bla

    ich progg in dev
    kann sein das der des net richtig verarbeitet weil in borland gibts system net glaub ich


  • Administrator

    sothis_ schrieb:

    rolf lol schrieb:

    Gib ne Meldung aus, dass man auf keinen Fall auf A drücken darf.

    lol, das wäre die microsoft lösung 😃

    Ne, gibt es auch bei anderen. Als ich meine theoretische Fahrprüfung gemacht habe, da wurde uns zu Beginn mitgeteilt, dass wir auf keinem Fall die rechte Maustaste drücken sollen, sonst würde das System abstürzen.

    Das hat besonders die gefreut, welche noch nie mit einem Computer zu tun hatten. Die waren dann überhaupt nicht nervös 😃

    @MasterTobi,
    Ist das wirklich der ganze Code? Gibt es noch mehr? Mach mal eine 1:1 Kopie, sofern es nicht zu viel Code ist, dann könnte man dir vielleicht etwas besser helfen, sofern sich jemand die Zeit dazu nimmt 😉

    Grüssli



  • ich nehm mal an, das Programm stuerzt nicht wegen dem "a" ein, sondern weil du mehr als nur den einen Charakter eingibst, einen ganzen String z. B. Ich kann mich zumindest dran erinnern dass ich frueher wegen so Dingen Crashes bekommen hab (habs grad probiert, aber unter Linux scheint nix zu crashen).

    Die "einfachste" Loesung: lies erstmal einen String ein ( std::getline ), und schau dann nach, ob der String eine Zahl ist oder doch nicht, und wenns keine Zahl ist, gibst du eine Fehlermeldung aus.


Anmelden zum Antworten