PDF download Download Article
Everything you need to know about time delays in C language
PDF download Download Article

Did you ever want to make a C program wait for a certain time?

You can set up a technique to allow time to tick away, for example: when showing a splash page (a notice or hint) for a game.

Okay, here are some ways to make the program "stand still", read on...

Delaying in C Language: Quick Tips

  • Method 1: Make your CPU work for a while without doing any other operations for a simple time delay.
  • Method 2: Use a "for" loop followed by a null statement to make a time delay in C.
  • Method 3: Use the sleep() function to specify how many milliseconds you want to program to delay and insert the code wherever you need delays.
Method 1
Method 1 of 2:

The "for-loop" technique

PDF download Download Article
    • for (i=1 ; i<100 ; i++) ;
    • The statement followed by the ";" makes the computer execute the loop 100 times without any noticeable event. It just creates a time delay.
  1. Advertisement
Method 2
Method 2 of 2:

The "sleep()" Technique

PDF download Download Article
  1. Use sleep() The function called sleep(int ms) declared in <TIME.H>which makes the program wait for the time in milliseconds specified.
    • #include <TIME.H>
    • sleep(1000);
    • Change the "1000" to the number of milliseconds you want to wait (for example, if you want to make a 2 second delay, replace it with "2000".
    • Tip: On some systems the value might refer to seconds, instead of milliseconds. So sometimes 1000 isn't one second, but, in fact, 1000 seconds.
  2. Advertisement

Community Q&A

Search
Add New Question
  • Question
    On my computer, the sleep function works with seconds and I think it accepts integers. How can I drop a delay for half a second?
    Community Answer
    Community Answer
    In the C language, sleep() accepts integers that represent the number of milliseconds the program should wait, which means you need to call sleep(500) to wait half a second.
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement

Sample Code

A program that waits a given amount of seconds:


#include <stdio.h>
#include <dos.h>

int main()
{
    int del; // The delay period
    printf("Enter the delay time (in seconds): ");
    scanf("%i",&del); 
    del *= 1000; // Multiply it by 1000 to convert to milliseconds
    delay(del); // delay.
    printf("Done.");
    return 0;
}


A program that counts down from 10 to 0:


#include <stdio.h>
#include <time.h>

int main()
{
    int i;
    for(i = 10; i >= 0; i--)
    {
        printf("%i\n",i); // Write the current 'countdown' number
        delay(1000); // Wait a second
    }
    return 0;
}

Tips

Submit a Tip
All tip submissions are carefully reviewed before being published
Name
Please provide your name and last initial
Thanks for submitting a tip for review!
Advertisement

Warnings

  • If you are using the for-loop, the compiler may optimize the code, and, because the loop does nothing, remove it. This doesn't happen when using delay().
  • Note that when using the for-loop technique, you might need a very big span for i, because an empty statement is executed very fast. Such big numbers may not fit in an integer type.
  • This technique is generally useless in anything besides a trivial program. In general, use timers or an event-driven approach to implement this. Otherwise the program will become unresponsive during the delay time, and that's not always a good thing. Besides, choosing N in your loop, if it depends on instruction execution, may have surprising results. Apparently the original author has never heard of an optimizing compiler...it may optimize away the entire loop if it actually does nothing !
Advertisement

About This Article

wikiHow is a “wiki,” similar to Wikipedia, which means that many of our articles are co-written by multiple authors. To create this article, 16 people, some anonymous, worked to edit and improve it over time. This article has been viewed 406,582 times.
How helpful is this?
Co-authors: 16
Updated: November 25, 2024
Views: 406,582
Thanks to all authors for creating a page that has been read 406,582 times.

Is this article up to date?

Advertisement