Entrada de console sem bloqueio em C
No C moderno, a entrada de console sem bloqueio permite o manuseio contínuo dos comandos do usuário enquanto o programa continua a executar e gerar informações. Esse recurso geralmente é crítico em aplicativos e jogos interativos.
Solução C 11:
Uma maneira eficaz de implementar entrada de console sem bloqueio é através do uso de um console separado fio. Essa abordagem permite que o programa principal continue em execução enquanto um thread em segundo plano monitora a entrada do console. O exemplo de código a seguir demonstra essa abordagem usando 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 Explicação:
Neste exemplo, a função getAnswer é responsável por recuperar a entrada do usuário. A função std::async inicia um thread separado que executa getAnswer e retorna um objeto std::future que pode ser usado para recuperar o resultado.
O programa principal define um tempo limite de 5 segundos para aguardar a entrada do usuário . Se o usuário inserir uma entrada dentro desse período, o programa definirá a variável de resposta para a entrada. Caso contrário, o padrão é "talvez".
Essa abordagem de entrada sem bloqueio permite que o programa continue seus cálculos e resultados contínuos enquanto ainda responde à entrada do usuário de forma eficiente. É uma técnica poderosa para construir aplicativos C interativos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3