Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

slowing the speed of for loop

Tags:

c++

for-loop

for(;;) {
    int rand_number = rand() % 2;
    cout << rand_number;
}

These loops generates the 1's and 0's across the screen like the matrix movie (LOL) but the code executes really fast is there any way that we make the numbers appear slowly?

like image 553
Kamran Avatar asked Jun 28 '12 12:06

Kamran


3 Answers

use Sleep(3000); to wait for 3000 milliseconds for example

#include <iostream>
#include <stdlib.h>
#include <Windows.h>

using namespace std;

int main(int argc,char**argv){
    cout<<"a"<<endl;
    Sleep(3000);
    cout<<"b"<<endl;

    return 0;
}
like image 156
Nurlan Avatar answered Nov 15 '22 04:11

Nurlan


Check out usleep. You could use sleep as well, but I imagine that will be too slow.

USLEEP(3)                BSD Library Functions Manual                USLEEP(3)

NAME
     usleep -- suspend thread execution for an interval measured in microseconds

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <unistd.h>

     int
     usleep(useconds_t useconds);

DESCRIPTION
     The usleep() function suspends execution of the calling thread until either useconds microseconds have elapsed or a signal is delivered to the thread whose action
     is to invoke a signal-catching function or to terminate the thread or process.  The actual time slept may be longer, due to system latencies and possible limita-
     tions in the timer resolution of the hardware.

     This function is implemented, using nanosleep(2), by pausing for useconds microseconds or until a signal occurs.  Consequently, in this implementation, sleeping
     has no effect on the state of process timers and there is no special handling for SIGALRM.

RETURN VALUES
     The usleep() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

ERRORS
     The usleep() function will fail if:

     [EINTR]            A signal was delivered to the process and its action was to invoke a signal-catching function.

SEE ALSO
     nanosleep(2), sleep(3)

HISTORY
     The usleep() function appeared in 4.3BSD.

BSD                            February 13, 1998                           BSD
like image 36
RC. Avatar answered Nov 15 '22 03:11

RC.


If you just want it to stop until you are ready you can put in a random pointless cin. It'll just wait there for input until you press return.

like image 21
babno Avatar answered Nov 15 '22 03:11

babno