Programm follbild ausführen



  • Hiho,

    ich binn Anfänger in der c++ programmierung. Ich habe mich jetzt mal selber an ein eigenes Programm gewagt. Das Ziel war, dass das Programm solange "Ich Will Kekse" sagt, bis der Anwender "Kekse" eingibt. Anders soll sich das Programm nicht beenden lassen. Doch nun taten sich 2 Probleme auf:
    1.Wie bekomme ich das ganze Vollbild. Bis jetzt habe ich halt nur die Commandozeile.
    2.Mein Code sieht bis jetzt so aus:

    #include <iostream>
    using namespace std;
    
    int main()
    {
     string user;
     while(user!="Kekse")
     {
      cout<<"Ich will Kekse!:";
      cin>>user;            
     }
    }
    

    Wenn man dort jatzt als antwort 2 wörter/Buchstaben mit leerzeichen getrennt hinschreibt, gibt das Programm zweimal "Ich will Kekse" aus. Woran liegt das, und wie kann man es unterbinden?

    Danke schonmal.

    CPing



  • das liegt daran, dass bei istreams der op<< mit einem string als parameter nur bis zum nächsten whitespace liest. Bei Zwei Wörtern reichts also auch für zweimal String-input. such mal in der C++-Doku deiner Wahl nach getline(), damit bekommst du die komplette Eingabe bis zum Zeilenumbruch/Enter

    Für Vollbild gibts in C++ nichts, das ist etwas OS-spezifisches. in rein konsolenbasierten betriebssystemen hast du z.B. garkeine andere wahl als die vollbildkonsole.



  • Mh.. du könntest Keyboad events nehmen und Alt+Enter Tastendruck simulieren, dadurch würde er das Programm maximieren. Da du aber noch Anfänger bist, würde ich dir raten dich erstmal nicht damit zu befassen...



  • FreakY<3Cpp schrieb:

    du könntest Keyboad events nehmen und Alt+Enter Tastendruck simulieren

    Das klingt ja sehr vielversprechend. Und manuell klappts auch gut.
    ich habe gefunden:

    UINT SendInput(      
        UINT nInputs,
        LPINPUT pInputs,
        int cbSize
    );
    

    aber damit kann ich wie gesagt als Anfänger nichts anfangen 😞
    Könnte mir jemand von euch da bitte helfen und mir den code sagen? Das fände ich total nett 🙂
    Danke schonmal



  • Versuchs hiermit:

    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
    
        keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0);
    
        keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0);
    
        keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
    

    Denk aber dran, du musst die windows.h inkludieren.



  • Wunderbar. Das funktioniert. Dankeschön 🙂



  • SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), CONSOLE_FULLSCREEN_MODE, 0);
    

Anmelden zum Antworten