⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdg_022b.txt

📁 c编程宝典,详细介绍有关c的资料
💻 TXT
字号:
函数名: 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; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -