"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je implémenter une entrée de console non bloquante en C++ pour les applications interactives ?

Comment puis-je implémenter une entrée de console non bloquante en C++ pour les applications interactives ?

Publié le 2024-11-08
Parcourir:235

How can I implement non-blocking console input in C   for interactive applications?

Entrée de console non bloquante en C

En C moderne, l'entrée de console non bloquante permet une gestion transparente des commandes utilisateur pendant l'exécution du programme continue de fonctionner et de générer des informations. Cette capacité est souvent critique dans les applications interactives et les jeux.

C 11 Solution :

Un moyen efficace de mettre en œuvre une entrée de console non bloquante consiste à utiliser un fil de discussion. Cette approche permet au programme principal de continuer à s'exécuter pendant qu'un thread d'arrière-plan surveille les entrées de la console. L'exemple de code suivant illustre cette approche en utilisant C 11 :

#include 
#include 
#include 
#include 

static std::string getAnswer()
{
    std::string answer;
    std::cin >> answer;
    return answer;
}

int main()
{
    std::chrono::seconds timeout(5);
    std::cout  future = std::async(getAnswer);

    if (future.wait_for(timeout) == std::future_status::ready)
        answer = future.get();

    std::cout 

Explication :

Dans cet exemple, la fonction getAnswer est chargée de récupérer la saisie de l'utilisateur. La fonction std::async lance un thread séparé qui exécute getAnswer et renvoie un objet std::future qui peut être utilisé pour récupérer le résultat.

Le programme principal définit un délai d'attente de 5 secondes pour attendre la saisie de l'utilisateur. . Si l'utilisateur saisit une entrée dans ce délai, le programme définit la variable de réponse sur l'entrée. Sinon, la valeur par défaut est « peut-être ».

Cette approche de saisie non bloquante permet au programme de poursuivre ses calculs et ses sorties en cours tout en répondant efficacement aux entrées de l'utilisateur. Il s'agit d'une technique puissante pour créer des applications C interactives.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3