Maybe this just shows how unexperienced i am with C ( very unexperienced)
but im used to java where i could print something in each iteration of a loop. I was trying to get a load bar for a big calculation involving a loop running a billion times, since the loop was taking 20 seconds or so, but if i tried to print something in the loop at certain intervals, it didnt print anything until the loop was completely finished, and then printed EVERYTHING at once. Is this how it is in C? or am i doing something wrong.

This code is just a rushed example of what im talking about. with a star being printed at certain times during the entire life of the loop

Code:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   unsigned long i;
   unsigned long m = 1000000000;
   for(i = 0; i < m; i++)
   {
      if(i == (m*.2) || i == (m*.3) || i == (m*.4) || i == (m*.8))
      {
         printf(" * ");
      }
   }
   return 0;
}