3_3.c

来自「浙大《C语言设计基础课程设计》中的例程 有些比较好的代码!」· C语言 代码 · 共 93 行

C
93
字号
/*-------例程3-3-----------*/
#include <stdio.h>
#include <conio.h>
#include <bios.h>

/*切换时保存左窗口文本*/
char leftbuf[40*25*2];
/*切换时保存右窗口文本*/
char rightbuf[40*25*2];
/*切换时保存左窗口当前坐标*/
int leftx, lefty;
/*切换时保存右窗口当前坐标*/
int rightx, righty;
/*重绘左边窗口*/
void draw_left_win();
/*重绘右边窗口*/
void draw_right_win();

int main()
{
   int key;
   int turn;
   textmode(C80);
   textbackground(0);
   textcolor(WHITE);
   clrscr();
   gotoxy(60,1);
   cprintf("Press Esc to Quit");
   window(41,2,79,24);	/*右边窗口为绿色背景,红色前景*/
   textbackground(2);
   textcolor(4);
   clrscr();
   gettext(41,2,79,24, rightbuf);

   window(2,2,40,24);	/*左边窗口为蓝色背景,白色前景*/
   textbackground(1);
   textcolor(15);
   clrscr();
   gettext(2,2,40,24, leftbuf);

   turn = 0;  /*初始激活左窗口*/
   for(;;)
   {
        key=bioskey(0);
        if(key == 0x11b)
            exit(0);
        key=key&0xff;       /*获取窗口输入的文本的ASCII码值*/
        if(key == '\t')
        {
            if(turn == 0)		/*切换到左窗口*/
            {
                gettext(2,2,40,24, leftbuf);
                leftx = wherex();
                lefty = wherey();
                draw_right_win();
                turn = 1;
            }
            else if(turn == 1)		/*切换到右窗口*/
            {
                gettext(41,2,79,24, rightbuf);
                rightx = wherex();
                righty = wherey();
                draw_left_win();
                turn = 0;
            }
        }
        else
            putch(key);		/*当前光标处显示新输入的文本字符*/
   }
}

/*重绘右边窗口*/
void draw_right_win()
{
   window(41,2,79,24);
   textbackground(2);
   textcolor(4);
   clrscr();
   puttext(41,2,79,24, rightbuf);
   gotoxy(rightx, righty);
}

/*重绘左边窗口*/
void draw_left_win()
{
   window(2,2,40,24);
   textbackground(1);
   textcolor(15);
   clrscr();
   puttext(2,2,40,24, leftbuf);
   gotoxy(leftx, lefty);
}
/*-------例程3-3结束-----------*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?