当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

一个linux下面控制光标的程序

    curses 类程序, 包含头文件为stdio.h 和 curses.h


    /*******************************************************************************
     * Program ID : 001
     * Program Name : redfox
     *
     * File ID : fox_001
     * File Name : fox.c
     *
     * Description :
     *  Output "fox" to your screen.
     *
     * Modify Record :
     *  2005/02/19/    yangyu     creat
     *  2005/06/16/    yangyu     fix (add curs_set(0))
     *
     * Comment :
     *   Compilation Method :  gcc -lcurses -o redfox fox.c
     *    Runing  Method     :  ./redfox
     ******************************************************************************/

    #include

    #include

    #define FONTCOLOR COLOR_RED

    /*******************************************************************************
     * Function ID : F_001
     * Function Name : F_Inital
     *
     * Function Description :
     *  Screen inital
     *
     * Parameters : void
     *
     * Return Value : int
     *   0         :  Success
     *   none of 0 :  Failed
     *
     * Modify Record :
     * 2005/02/19/    yangyu     creat
     ******************************************************************************/


    int F_Inital(void)
    {
     initscr();
     cbreak();
     nonl();
     noecho();
     intrflush(stdscr, FALSE);
     keypad(stdscr, TRUE);
     curs_set(0);
     refresh();
     return 0;
    }

    /*******************************************************************************
     * Function ID : F_002
     * Function Name : F_OutPut_o
     *
     * Function Description :
     *  Write "O" to screen
     *
     * Parameters : void
     *
     * Return Value : void
     *
     * Modify Record :
     * 2005/02/19/    yangyu     creat
     ******************************************************************************/


    void F_OutPut_o(void)
    {
     int iLine = LINES/2 -4;
     int iCol  = COLS/2;
     int i = 0;

     for(;i < 4; i++)
     {
      move(iLine, iCol-i);
      addch('@');
      refresh();
      usleep(10);
     }
     for(i = 0; i < 4; i++)
      {
      move(iLine+i+1, iCol-4);
      addch('@');
      refresh();
      usleep(10);
     }
     for(i = 4; i > 0; i--)
     {
      move(iLine+5, iCol-(i-1));
      addch('@');
      refresh();
      usleep(10);
     }
     for(i = 4; i > 0; i--)
     {
      move(iLine+i, iCol+1);
      addch('@');
      refresh();
      usleep(10);
     }
    }

    /*******************************************************************************
     * Function ID : F_003
     * Function Name : F_OutPut_f
     *
     * Function Description :
     *  Write "F" to screen
     *
     * Parameters : void
     *
     * Return Value : void
     *
     * Modify Record :
     * 2005/02/19/    yangyu     creat
     ******************************************************************************/

    void F_OutPut_f(void)
    {
     int iLine = 0;
     int iCol = 0;
     int i;
     iLine = LINES/2;
     iCol = COLS/4;
     for(i = 0; i < 6; i++)
     {
      move(iLine-4, iCol+i);
      addch('@');
      refresh();
      usleep(10);
     }
     for(i =4; i >= -1; i--)
     {
      move(iLine-i, iCol);
      addch('@');
      refresh();
      usleep(10);
     }
     for(i = 0; i < 4; i++)
     {
      move(iLine-2, iCol+1+i);
      addch('@');
      refresh();
      usleep(10);
     }


    }

    /*******************************************************************************
     * Function ID : F_004
     * Function Name : F_OutPut_x
     *
     * Function Description :
     *  Write "X" to screen
     *
     * Parameters : void
     *
     * Return Value : void
     *
     * Modify Record :
     * 2005/02/19/    yangyu     creat
     ******************************************************************************/

 

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接