Originariamente inviato da Scara95
codice:
#include <time.h>
void sleep(double sleeptime) {
  time_t start = time(NULL);
  while(difftime(time(NULL), start) < sleeptime);
}
Questa roba divora la CPU, e tra l'altro la time normalmente non ha abbastanza risoluzione per lavorare con intervalli inferiori al secondo...

Il modo "giusto" è usare la Sleep su Windows e la usleep su Linux/sistemi POSIX; puoi "condensare" i due approcci in una sola funzione con qualche trucco di preprocessore:
codice:
#if defined(_WIN32)
#include <windows.h>
#elif defined(_POSIX_VERSION)
#include <unistd.h>
#endif

void sleep_msec(unsigned int msec)
{
#if defined(_WIN32)
    Sleep(msec);
#elif defined(_POSIX_VERSION)
    usleep(msec*1000u);
#else
    #error Unsupported OS.
#endif
}