正文

C函数2007-08-13 16:19:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hujing/28459.html

分享到:

后一页前一页 B 函数名: bar 功  能: 画一个二维条形图 用  法: void far bar(int left, int top, int right, int bottom); 程序例: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) {    /* request auto detection */    int gdriver = DETECT, gmode, errorcode;    int midx, midy, i;    /* initialize graphics and local variables */    initgraph(&gdriver, &gmode, "");    /* read result of initialization */    errorcode = graphresult();    if (errorcode != grOk)  /* an error occurred */    {       printf("Graphics error: %s\n", grapherrormsg(errorcode));       printf("Press any key to halt:");       getch();       exit(1); /* terminate with an error code */    }    midx = getmaxx() / 2;    midy = getmaxy() / 2;    /* loop through the fill patterns */    for (i=SOLID_FILL; i<USER_FILL; i++)    {       /* set the fill style */       setfillstyle(i, getmaxcolor());       /* draw the bar */       bar(midx-50, midy-50, midx+50,          midy+50);       getch();    }    /* clean up */    closegraph();    return 0; }       函数名: bar3d 功  能: 画一个三维条形图 用  法: void far bar3d(int left, int top, int right, int bottom,                        int depth, int topflag); 程序例: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) {    /* request auto detection */    int gdriver = DETECT, gmode, errorcode;    int midx, midy, i;    /* initialize graphics, local variables */    initgraph(&gdriver, &gmode, "");    /* read result of initialization */    errorcode = graphresult();    if (errorcode != grOk)  /* an error occurred */    {       printf("Graphics error: %s\n", grapherrormsg(errorcode));       printf("Press any key to halt:");       getch();       exit(1); /* terminate with error code */    }    midx = getmaxx() / 2;    midy = getmaxy() / 2;    /* loop through the fill patterns */    for (i=EMPTY_FILL; i<USER_FILL; i++)    {       /* set the fill style */       setfillstyle(i, getmaxcolor());       /* draw the 3-d bar */       bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);       getch();    }    /* clean up */    closegraph();    return 0; }       函数名: bdos 功  能: DOS系统调用 用  法: int bdos(int dosfun, unsigned dosdx, unsigned dosal); 程序例: #include <stdio.h> #include <dos.h> /* Get current drive as 'A', 'B', ... */ char current_drive(void) {    char curdrive;    /* Get current disk as 0, 1, ... */    curdrive = bdos(0x19, 0, 0);    return('A' + curdrive); } int main(void) {    printf("The current drive is %c:\n", current_drive());    return 0; }       函数名: bdosptr 功  能: DOS系统调用 用  法: int bdosptr(int dosfun, void *argument, unsigned dosal); 程序例: #include <string.h> #include <stdio.h> #include <dir.h> #include <dos.h> #include <errno.h> #include <stdlib.h> #define  BUFLEN  80 int main(void) {    char  buffer[BUFLEN];    int   test;    printf("Enter full pathname of a directory\n");    gets(buffer);    test = bdosptr(0x3B,buffer,0);       if(test)       {   printf("DOS error message: %d\n", errno);   /* See errno.h for error listings */   exit (1);       }    getcwd(buffer, BUFLEN);    printf("The current directory is: %s\n", buffer);    return 0; }       函数名: bioscom 功  能: 串行I/O通信 用  法: int bioscom(int cmd, char abyte, int port); 程序例: #include <bios.h> #include <conio.h> #define COM1       0 #define DATA_READY 0x100 #define TRUE       1 #define FALSE      0 #define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00) int main(void) {    int in, out, status, DONE = FALSE;    bioscom(0, SETTINGS, COM1);    cprintf("... BIOSCOM [ESC] to exit ...\n");    while (!DONE)    {       status = bioscom(3, 0, COM1);       if (status & DATA_READY)   if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)      putch(out);   if (kbhit())   {      if ((in = getch()) == '\x1B')         DONE = TRUE;      bioscom(1, in, COM1);   }    }    return 0; }       函数名: biosdisk 功  能: 软硬盘I/O 用  法: int biosdisk(int cmd, int drive, int head, int track, int sector        int nsects, void *buffer); 程序例: #include <bios.h> #include <stdio.h> int main(void) {    int result;    char buffer[512];    printf("Testing to see if drive a: is ready\n");    result = biosdisk(4,0,0,0,0,1,buffer);    result &= 0x02;    (result) ? (printf("Drive A: Ready\n")) :        (printf("Drive A: Not Ready\n"));    return 0; }       函数名: biosequip 功  能: 检查设备 用  法: int biosequip(void); 程序例: #include <bios.h> #include <stdio.h> int main(void) {    int result;    char buffer[512];    printf("Testing to see if drive a: is ready\n");    result = biosdisk(4,0,0,0,0,1,buffer);    result &= 0x02;    (result) ? (printf("Drive A: Ready\n")) :        (printf("Drive A: Not Ready\n"));    return 0; }       函数名: bioskey 功  能: 直接使用BIOS服务的键盘接口 用  法: int bioskey(int cmd); 程序例: #include <stdio.h> #include <bios.h> #include <ctype.h> #define RIGHT  0x01 #define LEFT   0x02 #define CTRL   0x04 #define ALT    0x08 int main(void) {    int key, modifiers;    /* function 1 returns 0 until a key is pressed */    while (bioskey(1) == 0);    /* function 0 returns the key that is waiting */    key = bioskey(0);    /* use function 2 to determine if shift keys were used */    modifiers = bioskey(2);    if (modifiers)    {       printf("[");       if (modifiers & RIGHT) printf("RIGHT");       if (modifiers & LEFT)  printf("LEFT");       if (modifiers & CTRL)  printf("CTRL");       if (modifiers & ALT)   printf("ALT");       printf("]");    }    /* print out the character read */    if (isalnum(key & 0xFF))       printf("'%c'\n", key);    else       printf("%#02x\n", key);    return 0; }     函数名: biosmemory 功  能: 返回存储块大小 用  法:int biosmemory(void); 程序例: #include <stdio.h> #include <bios.h> int main(void) {    int memory_size;    memory_size = biosmemory();  /* returns value up to 640K */    printf("RAM size = %dK\n",memory_size);    return 0; }       函数名: biosprint 功  能: 直接使用BIOS服务的打印机I/O 用  法: int biosprint(int cmd, int byte, int port); 程序例: #include <stdio.h> #include <conio.h> #include <bios.h> int main(void) {    #define STATUS  2    /* printer status command */    #define PORTNUM 0    /* port number for LPT1 */    int status, abyte=0;    printf("Please turn off your printer.  Press any key to continue\n");    getch();    status = biosprint(STATUS, abyte, PORTNUM);    if (status & 0x01)       printf("Device time out.\n");    if (status & 0x08)       printf("I/O error.\n");    if (status & 0x10)       printf("Selected.\n");    if (status & 0x20)       printf("Out of paper.\n");    if (status & 0x40)       printf("Acknowledge.\n");    if (status & 0x80)       printf("Not busy.\n");    return 0; }       函数名: biostime 功  能: 读取或设置BIOS时间 用  法: long biostime(int cmd, long newtime); 程序例: #include <stdio.h> #include <bios.h> #include <time.h> #include <conio.h> int main(void) {    long bios_time;    clrscr();    cprintf("The number of clock ticks since midnight is:\r\n");    cprintf("The number of seconds since midnight is:\r\n");    cprintf("The number of minutes since midnight is:\r\n");    cprintf("The number of hours since midnight is:\r\n");    cprintf("\r\nPress any key to quit:");    while(!kbhit())    {       bios_time = biostime(0, 0L);       gotoxy(50, 1);       cprintf("%lu", bios_time);       gotoxy(50, 2);       cprintf("%.4f", bios_time / CLK_TCK);       gotoxy(50, 3);       cprintf("%.4f", bios_time / CLK_TCK / 60);       gotoxy(50, 4);       cprintf("%.4f", bios_time / CLK_TCK / 3600);    }    return 0; }       函数名: brk 功  能: 改变数据段空间分配 用  法: int brk(void *endds); 程序例: #include <stdio.h> #include <alloc.h> int main(void) {    char *ptr;    printf("Changing allocation with brk()\n");    ptr = malloc(1);    printf("Before brk() call: %lu bytes free\n", coreleft());    brk(ptr+1000);    printf(" After brk() call: %lu bytes free\n", coreleft());    return 0; }       函数名: bsearch 功  能: 二分法搜索 用  法: void *bsearch(const void *key, const void *base, size_t *nelem,         size_t width, int(*fcmp)(const void *, const *)); 程序例: #include <stdlib.h> #include <stdio.h> #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) int numarray[] = {123, 145, 512, 627, 800, 933}; int numeric (const int *p1, const int *p2) {    return(*p1 - *p2); } int lookup(int key) {    int *itemptr;    /* The cast of (int(*)(const void *,const void*))       is needed to avoid a type mismatch error at       compile time */    itemptr = bsearch (&key, numarray, NELEMS(numarray),       sizeof(int), (int(*)(const void *,const void *))numeric);    return (itemptr != NULL); } int main(void) {    if (lookup(512))       printf("512 is in the table.\n");    else       printf("512 isn't in the table.\n");    return 0; }   后一页前一页

阅读(1977) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册