Como hago para luego de que pase un tiempo el programa haga lo que le ordene por ejemplo que deje digitar un numero por 60 segundos por ejemplo despues de esos 60 segundos no deje digitar nada y salgo un mensaje que me diga ha excedido su tiempo
Buenas, la unica forma que se me ocurre para lograr eso sin el uso de hilos, es haciendo uso de las funciónes
kbhit() y getche() de la libreria
conio.h #include <iostream>
#include <cstddef>
#include <ctime>
#include <conio.h>
bool get_input ( char *buffer, std::size_t size, int timeout )
{
std::time_t start = std::time ( 0 );
std::size_t n = 0;
for (;;)
{
if ( n == 0 && std::difftime (std::time(0), start ) >= timeout )
return false;
if (kbhit()) {
if ( n == size - 1 )
break;
char ch = (int)getche();
if ( ch == '\r' )
{
buffer[n++] = '\n';
break;
}
else
buffer[n++] = ch;
}
}
buffer[n] = '\0';
return true;
}
int main(void)
{
char buffer[20] = {};
if ( !get_input (buffer, 20, 5) ) {
std::cout << "Tiempo agotado\n";
buffer[0] = '\n';
}
std::cout<<"\nSalida: " << buffer;
return 0;
}
Se que la libreria
conio.h no es recomendable utilizarla