inputs als commands abfangen



  • Ich habe schon einige therads hier im Forum gelesen über std::thread doch verstehe es nicht... Vorab ist mein Ziel jeden input abzufangen und ihn einer weiteren funktion zu übergeben und das die ganze zeit während das Programm läuft. Ich möchte hierbei jedoch keine while schleife einsetzten daher der "input thread" im hintergrund laufen soll.

    Meine frage: Wie kann ich das machen?


  • Mod

    Was ist ein input und wie fängt man ihn ab? Was haben threads und while Schleifen miteinander zu tun?



  • Wenn bei meiner konsolenanwendung jemand etwas eingibbt das dieser string übergeben wird


  • Mod

    while (cin >> data)
      do_stuff(data);
    


  • Hier zeigst du das was, wofür ich eine alternative suche. Ich möchte nochim nachhinein machen und es sollte nicht durch diese Whilfe schleife hängen bleiben also das Programm. Kennst du eine alternative womit es nach der while schleife weiter gehen könnte?



  • Dann pack die while-Schleife in einen Thread:

    std::thread input_thread([](){
        std::string commandline;
        while(std::getline(std::cin, commandline))
            do_stuff(commandline); 
    });
    

Log in to reply