Search code examples
cwindows-consoletext-cursor

How to hide console cursor in c?


I have a simple C program that represents a loading screen within the console, but I can't get the cursor to hide. I tried cranking up the speed of the sleep function so that the cursor timer would be reset and the cursor would be gone but that doesn't work.

Any tips on how to hide the cursor?

Code:

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

const int TIME = 1;

int main(int argc,char *argv[]){
    int i;
    while (1){
        printf("loading");
        for (i=0;i<3;i++){
            sleep(TIME);
            printf(".");
        }
        sleep(TIME);
        printf("\r");
        system("Cls");
        sleep(TIME);
    }
}

Solution

  • Add to your program the following function

    #include <windows.h>
    
    void hidecursor()
    {
       HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
       CONSOLE_CURSOR_INFO info;
       info.dwSize = 100;
       info.bVisible = FALSE;
       SetConsoleCursorInfo(consoleHandle, &info);
    }
    

    and call it in your main.

    And read more in the MSDN