Biblioteca iomanip de C ++ - Función get_time

Descripción

Esta función accede a la secuencia de entrada construyendo primero un objeto de tipo basic_istream :: sentry. Luego (si la evaluación del objeto centinela es verdadera), llama a time_get :: get (usando la configuración regional seleccionada de la secuencia) para realizar tanto la extracción como las operaciones de análisis, y ajusta los indicadores de estado internos de la secuencia en consecuencia. Finalmente, destruye el objeto centinela antes de regresar.

Se utiliza para extraer caracteres del flujo de entrada al que se aplica y los interpreta como información de fecha y hora como se especifica en el argumento fmt. Los datos obtenidos se almacenan en el objeto struct tm apuntado por tmb.

Declaración

A continuación se muestra la declaración de la función std :: get_time.

template <class charT>
/*unspecified*/ get_time (struct tm* tmb, const charT* fmt);

Parámetros

tmb- Puntero a un objeto de tipo struct tm donde se almacena la información de fecha y hora extraída. struct tm es una clase definida en el encabezado <ctime>.

fmt- Cadena C utilizada por time_get :: get como cadena de formato (ver time_get :: get). charT es el tipo de carácter en la cadena c.

Valor devuelto

Sin especificar. Esta función solo debe usarse como manipulador de flujo.

Los errores se señalan modificando los indicadores de estado internos de la transmisión:

bandera error
eofbit La secuencia de entrada no tiene más caracteres disponibles (se alcanzó el final del archivo).
fallo No se extrajo ningún carácter o los caracteres extraídos no se pudieron interpretar como un valor monetario válido.
badbit Error en la transmisión (como cuando esta función detecta una excepción generada por una operación interna). Cuando se establece, la integridad de la transmisión puede haberse visto afectada.

Excepciones

Basic guarantee - si se lanza una excepción, el objeto está en un estado válido.

Lanza una excepción de falla de tipo de miembro si la marca de estado de error resultante no es goodbit y las excepciones de miembro se establecieron para lanzar para ese estado.

Cualquier excepción lanzada por una operación interna es capturada y manejada por la función, configurando badbit. Si badbit se estableció en la última llamada a excepciones, la función vuelve a generar la excepción detectada.

Carreras de datos

Accede a la matriz señalada por fmt Modifica el objeto señalado por tmb y el objeto de flujo del que se extrae.

El acceso simultáneo al mismo objeto de flujo puede causar carreras de datos, excepto para los objetos de flujo estándar cin y wcin cuando estos están sincronizados con stdio (en este caso, no se inician carreras de datos, aunque no se dan garantías sobre el orden en el que se extraen los caracteres se atribuyen a hilos).

Ejemplo

En el siguiente ejemplo se explica la función get_time.

#include <iostream>     
#include <iomanip>      
#include <ctime>        

int main () {
   struct std::tm when;
   std::cout << "Please, enter the time: ";
   std::cin >> std::get_time(&when,"%R");   

   if (std::cin.fail()) std::cout << "Error reading time\n";
   else {
      std::cout << "The time entered is: ";
      std::cout << when.tm_hour << " hours and " << when.tm_min << " minutes\n";
   }
   return 0;
}