Post actualizado: Simplificando el empleo de std::cin

El artículo 'Simplificando el empleo de std::cin' publicado originalmente en febrero de 2019 ha sido reescrito de forma sustancial, proporcionando una pequeña biblioteca para C++20 que facilita la adquisición de datos desde la terminal. Puede accederse a él pinchando sobre el enlace anterior.

El post actualizado incluye la implementación de tres funciones genéricas:

  • terminal::prompt: Imprime un mensaje en la terminal y aguarda a que el usuario introduzca el dato solicitado. Si el input es válido, éste es almacenado en una variable capturada por referencia. En caso contrario, vuelve a solicitarse el dato. Opcionalmente, es posible proporcionar una condición que deba ser satisfecha por el input.
  • terminal::prompt_init: Una función auxiliar similar a la anterior que inicializa ella misma por defecto una variable del tipo a leer y procede a su lectura por la terminal.
  • terminal::prompt_loop: Extiende la lista de argumentos de prompt() con una palabra clave centinela configurable por el programador, capaz de interrumpir bucles for y while.
A modo de ejemplo:

   auto d = 0.0;    terminal::prompt("Insert a double > 0.0: ", d, [](auto a){ return a > 0.0; });    auto const s = terminal::prompt_init<string>("Insert a non-empty string: ",                                                 [](auto const& w){ return !w.empty(); });

No hay comentarios:

Publicar un comentario