C语言函数--B

来源:互联网 发布:spss数据分析认证 编辑:程序博客网 时间:2024/05/01 10:08


函数名: 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; }     



书画小说软件 制作

0 0