C language console window interface programming: use printf to print a GUI window in the terminal

Environment: cygwin (linux) + gcc

First give the effect diagram:


Source code:

#include<stdio.h>  
#include<stdlib.h>  
/* \033[Character display method;Character color;Character background color m The characters that need to be displayed\033[m */  
    /* How characters are displayed:
    0 (default), 1 (bold), 2 (grayed out), 3 (italic), 4 (underlined), 7 (inverted), 9 (strike out)
       Character color:
    30 (black), 31 (red), 32 (green), 33 (yellow), 34 (dark blue),
    35 (purple), 36 (light blue), 37 (white)
       Background color of characters:
    40 (black), 41 (red), 42 (green), 43 (yellow), 44 (blue),
    45 (purple), 46 (light blue), 47 (white) */
    
#define loop(n) for(int i=0;i<n;i++)

int main(int argc, char **argv)  
{  
    int ix, iz, nx, nz, bndr = 5;
    nx = 50;
    nz = 40;
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;43m \033[m");
    loop(5)printf("\b");
    printf("\033[;35;43m_ O X\033[m");
    loop(nx/3*2)printf("\b");
    printf("\033[;31;43m Main Window \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    printf("\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    loop(nx-3)printf("\b");
    printf("\033[;30;46m ifo:This is a test. \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    loop(nx-3)printf("\b");
    printf("\033[;30;46m     This is second test. \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    loop(nx-3)printf("\b");
    printf("\033[;30;46m     This is third test. \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    loop(nx-3)printf("\b");
    printf("\033[;30;46m     Code BY RongTao. 2018.05 \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    printf("\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    loop(nx-3)printf("\b");
    printf("\033[;30;46m Are you sure to continue?   \033[m");
    printf("\033[;;41m YES \033[m");
    printf("\033[;;46m  \033[m");
    printf("\033[;;41m NO \033[m\n");
    
    loop(bndr)printf(" ");
    loop(nx)printf("\033[;;46m \033[m");
    printf("\n");
}
For more information, please refer to: https://blog.csdn.net/rong_toa/article/details/79794014

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325760692&siteId=291194637