How do I clear the console in BOTH Windows and Linux using C++

前端 未结 12 1522
我寻月下人不归
我寻月下人不归 2020-11-30 01:54

I need a cross platform solution for clearing the console in both Linux and Windows written in C++. Are there any functions in doing this? Also make note that I don\'t want

12条回答
  •  情话喂你
    2020-11-30 02:23

    This code clears the console in BOTH Windows and Unix (Although it's actually compiled differently):

    // File: clear_screen.h
    #ifndef _CLEAR_SCREEN_H
    #define _CLEAR_SCREEN_H
    void clearScreen(void); /* Clears the screen */
    #endif /* _CLEAR_SCREEN_H */
    
    // File: clear_screen.c
    #ifdef _WIN32
    #include 
    void clearScreen(void) {
        HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
        COORD topLeft = {0, 0};
        DWORD dwCount, dwSize;
        CONSOLE_SCREEN_BUFFER_INFO csbi;
        GetConsoleScreenBufferInfo(hOutput, &csbi);
        dwSize = csbi.dwSize.X * csbi.dwSize.Y;
        FillConsoleOutputCharacter(hOutput, 0x20, dwSize, topLeft, &dwCount);
        FillConsoleOutputAttribute(hOutput, 0x07, dwSize, topLeft, &dwCount);
        SetConsoleCursorPosition(hOutput, topLeft);
    }
    #endif /* _WIN32 */
    
    #ifdef __unix__
    #include 
    void clearScreen(void) {
        printf("\x1B[2J");
    }
    #endif /* __unix__ */
    

提交回复
热议问题