b.txt
上传用户:harvey99
上传日期:2020-01-11
资源大小:938k
文件大小:9k
- 函数名: 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: %sn", 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: %sn", 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 directoryn");
- gets(buffer);
- test = bdosptr(0x3B,buffer,0);
- if(test)
- {
- printf("DOS error message: %dn", errno);
- /* See errno.h for error listings */
- exit (1);
- }
- getcwd(buffer, BUFLEN);
- printf("The current directory is: %sn", 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 readyn");
- result = biosdisk(4,0,0,0,0,1,buffer);
- result &= 0x02;
- (result) ? (printf("Drive A: Readyn")) :
- (printf("Drive A: Not Readyn"));
- 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 readyn");
- result = biosdisk(4,0,0,0,0,1,buffer);
- result &= 0x02;
- (result) ? (printf("Drive A: Readyn")) :
- (printf("Drive A: Not Readyn"));
- 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("%#02xn", 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 = %dKn",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 continuen");
- 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:rn");
- cprintf("The number of seconds since midnight is:rn");
- cprintf("The number of minutes since midnight is:rn");
- cprintf("The number of hours since midnight is:rn");
- cprintf("rnPress 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 freen", coreleft());
- brk(ptr+1000);
- printf(" After brk() call: %lu bytes freen", 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;
- }