c 库函数

 

http://www.cnblogs.com/BlueThinking/archive/2006/09/25/513673.html

clrscr,ClearScreen

  原型:extern void clrscr(void);
                        extern void ClearScreen(void);
                        用法:#include <system.h>
                        功能:清屏
                        说明:清除屏幕缓冲区及液晶显示缓冲区
                        光标位置回到屏幕左上角。
                        举例:
                        // clrscr.c
                        #include <system.h>
                        main()
                        {
                        clrscr();
                        textmode(0x00);
                        printf("Press a key");
                        getchar();
                        ClearScreen();
                        printf("Another Screen");
                        getchar();
                        return 0;
                        }
                        
http://www.ggv.com.cn/forum/clib/system/ClearScreen.html

getkey
  原型:extern int getkey(void);
                        用法:#include <system.h>
                        功能:读键
                        说明:功能同getchar
                        举例:
                        // getkey.c
                        #include <system.h>
                        main()
                        {
                        int c;
                        clrscr();
                        printf("Press key...");
                        while((c=getkey())!='Q')
                        {
                        clrscr();
                        printf("key: %c\nvalue: %x",c,c);
                        }
                        }
                        相关函数:getch,getchar,kbhit
                        
sleep
  原型:extern void sleep(unsigned int sec);
                        用法:#include <system.h>
                        功能:短暂延时
                        说明:延时sec秒
                        举例:
                        // sleep.c
                        #include <system.h>
                        main()
                        {
                        int c;
                        clrscr();
                        printf("\nHello, world!");
                        sleep(1);
                        clrscr();
                        printf("\nHi, guys");
                        getchar();
                        return 0;
                        }
                        C++:
Sleep(DWORD)  //单位是毫秒
出问题试着包含头文件winbase.h或windows.h                         
 
 
delay
  原型:extern void delay(unsigned int msec);
                        用法:#include <system.h>
                        功能:短暂延时
                        说明:延时msec*4毫秒
                        举例:
                        // delay.c
                        #include <system.h>
                        main()
                        {
                        int c;
                        clrscr();
                        printf("\nHello, world!");
                        delay(250);    // 250*4=1000msec=1sec
                        clrscr();
                        printf("\nHi, guys");
                        getchar();
                        return 0;
                        }
                        
line
  原型:extern void line(int left, int top, int right, int bottom, int mode);
                        用法:#include <system.h>
                        功能:在屏幕上画直线
                        说明:(left,top)和(right,bottom)指定直线的两个端点坐标。mode决定划线的模式。
                        超出屏幕的线将被裁端。
                        mode值的含义:
                        mode=0:清除方式
                        =1:正常方式
                        =2:取反方式
                        举例:
                        // line.c
                        #include <system.h>
                        main()
                        {
                        clrscr();
                        move(10,10);  // hide cursor
                        block(20,10,100,40,1);
                        line(1,1,111,47,1);  // from top left to bottom right
                        line(1,47,111,1,0);  // from bottom left to top right
                        line(112/2,1,112/2,47,2); // line vertically at the middle of the LCD
                        getchar();
                        return 0;
                        }
                        
kbhit
  原型:extern int kbhit(void);
                        用法:#include <stdio.h>
                        功能:检测按键
                        说明:检测键盘是否有键按下。
                        如果有键按下,则返回对应键值;否则返回零。
                        kbhit不等待键盘按键。无论有无按键都会立即返回。
                        举例:
                        // kbhit.c
                        #include <stdio.h>
                        main()
                        {
                        int i=0;
                        clrscr();
                        while(!kbhit())
                        {
                        clrscr();
                        printf("%05d",i++);
                        }
                        clrscr();
                        printf("End.");
                        getchar();
                        return 0;
                        }
  无键按下时,返回零;有键按下时,返回的不是键值,而是 -1。
  要取得键值,可以在循环里用 getch() 来接收。
while(1)
{
    ......
    if(kbhit)
    {
        c=getch();
        ......  
    }
}
//#################################################################
                        
          
          
#include<bios.h> main(){ int key; for(;;){ if (bioskey(1)) key=bioskey(0); else key=0; if (key == 0x11b) break; printf("0x%x\n",key); } }
bioskey(1) 执行后立即返回,检测键盘按键是否按下,有点像conio.h里原kbhit() 
bioskey(0) 读取一个按键。 

以上二个语句可以用下面getch()的方法代替,不过getch()是针对ASCII码的,箭头键和编辑键以及F1 -- F10需要两次getch()来读取。 

if (kbhit()) 
key=getch(); 
else 
key=0; 
 
  bioskey函数介绍 
函数原型:int bioskey (int cmd) 
说明:bioskey()的函数原型在bios.h中 
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。 
cmd = 0: 
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。 
cmd = 1: 
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。 
cmd = 2: 
当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。 
字节位 含义 
 0 右边Shift键状态 
 1 左边Shift键状态 
 3 Ctrl键状态 
 4 Alt键状态 
 5 ScrollLock键状态 
 6 NumLock键状态 
 7 CapsLock键状态 
 8 Insert键状态 
 
 
 int      bioskey(int  cmd)本函数用来执行各种键盘操作,由cmd确定操作。  
                cmd可为以下值:  
                0  返回敲键盘上的下一个键。若低8位为非0,即为ASCII字符;若低8位为0,  
                    则返回扩充了的键盘代码。  
                1  测试键盘是否可用于读。返回0表示没有键可用;否则返回下一次敲键之值。  
                    敲键本身一直保持由下次调用具的cmd值为0的bioskey所返回的值。  
                2  返回当前的键盘状态,由返回整数的每一个位表示,见下表:  
                  ┌──┬───────────┬───────────┐  
                  │  位  │为0时意义         │为1时意义           │  
                  ├──┼───────────┼───────────┤  
                  │  7    │插入状态         │改写状态            │  
                  │  6    │大写状态          │小写状态           │  
                  │  5    │数字状态,NumLock灯亮 │光标状态,NumLock灯熄  │  
                  │  4    │ScrollLock灯亮     │ScrollLock灯熄    │  
                  │  3    │Alt按下           │Alt未按下          │  
                  │  2    │Ctrl按下          │Ctrl未按下        │  
                  │  1    │左Shift按下        │左Shift未按下     │  
                  │  0    │右Shift按下        │右Shift未按下     │  
                  └──┴───────────┴───────────┘
                        
  • 0:读取键盘缓冲区,取出一个扫描码,并将之从缓冲区删除,如果没有按键,则等待一个并返回。     1:读取键盘缓冲区,取出一个扫描码,不从缓冲区删除,若没有按键,返回0。     2:返回  BIOS  状态标志位信息。要知道是否按着  Ctrl、Alt  或  Shift  键就要靠它来判断了。
 
 
 bioskey(1)的初始值为0,因此不执行if后的语句。当有键被按下时,键值则立即被赋给bioskey(1),
由于它不为0,则执行if后的语句,即将键值赋给bioskey(0),而bioskey(1)的值又归为0。 
getchar,getch
  原型:extern int getchar(void);
                        用法:#include <ctype.h>
                        功能:读键
                        说明:从键盘上读取一个键,并返回该键的键值
                        getch是到getchar的宏定义
                        举例:
                        // getchar.c
                        #include <stdio.h>
                        main()
                        {
                        int c;
                        clrscr();
                        printf("Press key...");
                        while((c=getchar())!='Q')
                        {
                        clrscr();
                        printf("key: %c\nvalue: %x",c,c);
                        }
                        }
                        

/************键盘上各键的扫描码以及组合键的扫描码***************/
返回的高位是Scan   Code,看KEY_开头那部分,低位是ASCII   code,看ASC_开头  
  部分。  
     
  #ifndef   _KEYDEF_H  
  #define   _KEYDEF_H  
     
  #define   KEY_UP   0x48  
  #define   KEY_LEFT   0x4b  
  #define   KEY_RIGHT   0x4d  
  #define   KEY_DOWN   0x50  
  #define   KEY_RETURN   0x1c  
  #define   KEY_BACKSPACE   0xe  
  #define   KEY_SPACE   0x39  
  #define   KEY_INSERT   0x52  
  #define   KEY_DEL   0x53  
  #define   KEY_HOME   0x47  
  #define   KEY_END   0x4f  
  #define   KEY_PAGEUP   0x49  
   
   
  #define   KEY_PAGEDOWN   0x51  
  #define   KEY_ESC   0x1  
  #define   KEY_TAB   0xf  
  #define   KEY_L_TIM   0x37   //   little   *  
  #define   KEY_L_SUB   0x4a   //   little   -  
  #define   KEY_L_ADD   0x4e   //   little   +  
  #define   KEY_L_5   0x4c       //   little   5  
     
  #define   KEY_F1   0x3b  
  #define   KEY_F2   0x3c  
  #define   KEY_F3   0x3d  
  #define   KEY_F4   0x3e  
  #define   KEY_F5   0x3f  
  #define   KEY_F6   0x40  
  #define   KEY_F7   0x41  
  #define   KEY_F8   0x42  
  #define   KEY_F9   0x43  
  #define   KEY_F10   0x44  
  #define   KEY_`   0x29  
  #define   KEY_1   0x2  
  #define   KEY_2   0x3  
  #define   KEY_3   0x4  
   
   
  #define   KEY_4   0x5  
  #define   KEY_5   0x6  
  #define   KEY_6   0x7  
  #define   KEY_7   0x8  
  #define   KEY_8   0x9  
  #define   KEY_9   0xa  
  #define   KEY_0   0xb  
  #define   KEY_SUB   0xc   //   -  
  #define   KEY_ADD   0xd   //   +  
  #define   KEY_VER   0xe   //   |  
  #define   KEY_Q   0x10  
  #define   KEY_W   0x11  
  #define   KEY_E   0x12  
  #define   KEY_R   0x13  
  #define   KEY_T   0x14  
  #define   KEY_Y   0x15  
  #define   KEY_U   0x16  
  #define   KEY_I   0x17  
  #define   KEY_O   0x18  
  #define   KEY_P   0x19  
  #define   KEY_L_B_C   0x1a   //   {  
  #define   KEY_R_B_C   0x1b   //   }  
   
   
  #define   KEY_A   0x1e  
  #define   KEY_S   0x1f  
  #define   KEY_D   0x20  
  #define   KEY_F   0x21  
  #define   KEY_G   0x22  
  #define   KEY_H   0x23  
  #define   KEY_J   0x24  
  #define   KEY_K   0x25  
  #define   KEY_L   0x26  
  #define   KEY_COL   0x27   //   :  
  #define   KEY_QUO   0x28   //   '  
  #define   KEY_Z   0x2c  
  #define   KEY_X   0x2d  
  #define   KEY_C   0x2e  
  #define   KEY_V   0x2f  
  #define   KEY_B   0x30  
  #define   KEY_N   0x31  
  #define   KEY_M   0x32  
  #define   KEY_COM   0x33   //   ,  
  #define   KEY_PER   0x34   //   .  
  #define   KEY_WHY   0x35   //   ?  
     
   
   
  #define   KEY_ALT   0x8  
  #define   KEY_CTRL   0x4  
  #define   KEY_L_SHIFT   0x222  
  #define   KEY_R_SHIFT   0x221  
     
  #define   SHIFT_RIGHT_SHIFT   0x01  
  #define   SHIFT_LEFT_SHIFT     0x02  
  #define   SHIFT_CTRL                 0x04  
  #define   SHIFT_ALT                   0x08  
  #define   SHIFT_SCROLL             0x10  
  #define   SHIFT_NUM                   0x20  
  #define   SHIFT_CAPS                 0x40  
  #define   SHIFT_INSERT             0x80  
  #define   SHIFT_LEFT_CTRL       0x0100  
  #define   SHIFT_LEFT_ALT         0x0200  
  #define   SHIFT_RIGHT_CTRL     0x0400  
  #define   SHIFT_RIGHT_ALT       0x0800  
  #define   SHIFT_SCROLL_2         0x1000  
  #define   SHIFT_NUM_2               0x2000  
  #define   SHIFT_CAPS_2             0x4000  
  #define   SHIFT_SYS_REQ           0x8000  
     
   
   
  #define   ASC_ESC   0x1b  
  #define   ASC_RETURN   0xd  
  #define   ASC_SPACE   0x20  
  #define   ASC_BACKSPACE   0x8  
     
  #define   ASC_CTRL_A   0x1  
  #define   ASC_CTRL_B   0x2  
  #define   ASC_CTRL_C   0x3  
  #define   ASC_CTRL_D   0x4  
  #define   ASC_CTRL_E   0x5  
  #define   ASC_CTRL_F   0x6  
  #define   ASC_CTRL_G   0x7  
  #define   ASC_CTRL_H   0x8  
  #define   ASC_CTRL_I   0x9  
  #define   ASC_CTRL_J   0xa  
  #define   ASC_CTRL_K   0xb  
  #define   ASC_CTRL_L   0xc  
  #define   ASC_CTRL_M   0xd  
  #define   ASC_CTRL_N   0xe  
  #define   ASC_CTRL_O   0xf  
  #define   ASC_CTRL_P   0x10  
  #define   ASC_CTRL_Q   0x11  
   
   
  #define   ASC_CTRL_R   0x12  
  #define   ASC_CTRL_S   0x13  
  #define   ASC_CTRL_T   0x14  
  #define   ASC_CTRL_U   0x15  
  #define   ASC_CTRL_V   0x16  
  #define   ASC_CTRL_W   0x17  
  #define   ASC_CTRL_X   0x18  
  #define   ASC_CTRL_Y   0x19  
  #define   ASC_CTRL_Z   0x1a  
     
  #define   ASC_a   0x61  
  #define   ASC_b   0x62  
  #define   ASC_c   0x63  
  #define   ASC_d   0x64  
  #define   ASC_e   0x65  
  #define   ASC_f   0x66  
  #define   ASC_g   0x67  
  #define   ASC_h   0x68  
  #define   ASC_i   0x69  
  #define   ASC_j   0x6a  
  #define   ASC_k   0x6b  
  #define   ASC_l   0x6c  
   
   
  #define   ASC_m   0x6d  
  #define   ASC_n   0x6e  
  #define   ASC_o   0x6f  
  #define   ASC_p   0x70  
  #define   ASC_q   0x71  
  #define   ASC_r   0x72  
  #define   ASC_s   0x73  
  #define   ASC_t   0x74  
  #define   ASC_u   0x75  
  #define   ASC_v   0x76  
  #define   ASC_w   0x77  
  #define   ASC_x   0x78  
  #define   ASC_y   0x79  
  #define   ASC_z   0x7a  
     
  #define   ASC_A   0x41  
  #define   ASC_B   0x42  
  #define   ASC_C   0x43  
  #define   ASC_D   0x44  
  #define   ASC_E   0x45  
  #define   ASC_F   0x46  
  #define   ASC_G   0x47  
   
   
  #define   ASC_H   0x48  
  #define   ASC_I   0x49  
  #define   ASC_J   0x4a  
  #define   ASC_K   0x4b  
  #define   ASC_L   0x4c  
  #define   ASC_M   0x4d  
  #define   ASC_N   0x4e  
  #define   ASC_O   0x4f  
  #define   ASC_P   0x50  
  #define   ASC_Q   0x51  
  #define   ASC_R   0x52  
  #define   ASC_S   0x53  
  #define   ASC_T   0x54  
  #define   ASC_U   0x55  
  #define   ASC_V   0x56  
  #define   ASC_W   0x57  
  #define   ASC_X   0x58  
  #define   ASC_Y   0x59  
  #define   ASC_Z   0x5a  
     
  #define   ASC_START_CODE   0x20  
  #define   ASC_END_CODE   0x7e  
  #endif
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值