Originariamente inviato da nasuka89
provo se riesco a fare un thread separato allora..
mi serve per windows
Allora prova a dare un'occhiata al codice che segue. Non è completo (anche se compila), però dovrebbe darti un'idea su come generare il countdown e soprattutto come visualizzarlo nello stesso punto a video. Non fa uso di thread secondari.
codice:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
HANDLE sout;
void print_timer(int secs)
{
CONSOLE_SCREEN_BUFFER_INFO sbi;
COORD c;
GetConsoleScreenBufferInfo(sout, &sbi);
c.X = 40;
c.Y = 5;
SetConsoleCursorPosition(sout, c);
printf("%5d", secs);
SetConsoleCursorPosition(sout, sbi.dwCursorPosition);
}
int main()
{
int secondi, esci, c;
DWORD t1 = 0, t2;
sout = GetStdHandle(STD_OUTPUT_HANDLE);
secondi = 10 + 1;
esci = 0;
while ((secondi > 0) && (esci == 0))
{
t2 = GetTickCount();
if ((t2 - t1) >= 1000)
{
print_timer(--secondi);
t1 = t2;
}
if (kbhit())
{
c = getch();
if (c == 0x0D)
esci = 1;
else
printf("%c", c);
}
}
if (esci)
printf("\n\nOK");
else
printf("\n\nTEMPO SCADUTO");
getch();
return 0;
}