• c语言函数---I






    函数名: imagesize

    功 能: 返回保存位图像所需的字节数

    用 法: unsigned far imagesize(int left, int top, int right, int bottom);

    程序例:

    #include <graphics.h> 
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <conio.h> 
    #define ARROW_SIZE 10 
    void draw_arrow(int x, int y); 
    int main(void) 
    { 
       /* request autodetection */ 
       int gdriver = DETECT, gmode, errorcode; 
       void *arrow; 
       int x, y, maxx; 
       unsigned int size; 
       /* initialize graphics and local variables */ 
       initgraph(&gdriver, &gmode, ""); 
       /* read result of initialization */ 
       errorcode = graphresult(); 
       if (errorcode != grOk)  /* an error occurred */ 
       { 
          printf("Graphics error: %s
    ", grapherrormsg(errorcode)); 
          printf("Press any key to halt:"); 
          getch(); 
          exit(1); /* terminate with an error code */ 
       } 
       maxx = getmaxx(); 
       x = 0; 
       y = getmaxy() / 2; 
       /* draw the image to be grabbed */ 
       draw_arrow(x, y); 
       /* calculate the size of the image */ 
       size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE); 
       /* allocate memory to hold the image */ 
       arrow = malloc(size); 
       /* grab the image */ 
       getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow); 
       /* repeat until a key is pressed */ 
       while (!kbhit()) 
       { 
          /* erase old image */ 
          putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); 
          x += ARROW_SIZE; 
          if (x >= maxx) 
              x = 0; 
          /* plot new image */ 
          putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); 
       } 
       /* clean up */ 
       free(arrow); 
       closegraph(); 
       return 0; 
    } 
    void draw_arrow(int x, int y) 
    { 
       /* draw an arrow on the screen */ 
       moveto(x, y); 
       linerel(4*ARROW_SIZE, 0); 
       linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); 
       linerel(0, 2*ARROW_SIZE); 
       linerel(2*ARROW_SIZE, -1*ARROW_SIZE); 
    } 
      
      
      
    
    

    函数名: initgraph

    功 能: 初始化图形系统

    用 法: void far initgraph(int far *graphdriver, int far *graphmode,

        char far *pathtodriver); 
    
    

    程序例:

    #include <graphics.h> 
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <conio.h> 
    int main(void) 
    { 
       /* request auto detection */ 
       int gdriver = DETECT, gmode, errorcode; 
       /* initialize graphics mode */ 
       initgraph(&gdriver, &gmode, ""); 
       /* read result of initialization */ 
       errorcode = graphresult(); 
       if (errorcode != grOk)  /* an error occurred */ 
       { 
          printf("Graphics error: %s
    ", grapherrormsg(errorcode)); 
          printf("Press any key to halt:"); 
          getch(); 
          exit(1);             /* return with error code */ 
       } 
       /* draw a line */ 
       line(0, 0, getmaxx(), getmaxy()); 
       /* clean up */ 
       getch(); 
       closegraph(); 
       return 0; 
    } 
      
      
    
    

    函数名: inport

    功 能: 从硬件port中输入

    用 法: int inp(int protid);

    程序例:

    #include <stdio.h> 
    #include <dos.h> 
    int main(void) 
    { 
       int result; 
       int port = 0;  /* serial port 0 */ 
       result = inport(port); 
       printf("Word read from port %d = 0x%X
    ", port, result); 
       return 0; 
    } 
      
      
    
    

    函数名: insline

    功 能: 在文本窗体中插入一个空行

    用 法: void insline(void);

    程序例:

    #include <conio.h> 
    int main(void) 
    { 
       clrscr(); 
       cprintf("INSLINE inserts an empty line in the text window
    "); 
       cprintf("at the cursor position using the current text
    "); 
       cprintf("background color.  All lines below the empty one
    "); 
       cprintf("move down one line and the bottom line scrolls
    "); 
       cprintf("off the bottom of the window.
    "); 
       cprintf("
    Press any key to continue:"); 
       gotoxy(1, 3); 
       getch(); 
       insline(); 
       getch(); 
       return 0; 
    } 
      
      
      
    
    

    函数名: installuserdriver

    功 能: 安装设备驱动程序到BGI设备驱动程序表中

    用 法: int far installuserdriver(char far *name, int (*detect)(void));

    程序例:

    #include <graphics.h> 
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <conio.h> 
    /* function prototypes */ 
    int huge detectEGA(void); 
    void checkerrors(void); 
    int main(void) 
    { 
       int gdriver, gmode; 
       /* install a user written device driver */ 
       gdriver = installuserdriver("EGA", detectEGA); 
       /* must force use of detection routine */ 
       gdriver = DETECT; 
       /* check for any installation errors */ 
       checkerrors(); 
       /* initialize graphics and local variables */ 
       initgraph(&gdriver, &gmode, ""); 
       /* check for any initialization errors */ 
       checkerrors(); 
       /* draw a line */ 
       line(0, 0, getmaxx(), getmaxy()); 
       /* clean up */ 
       getch(); 
       closegraph(); 
       return 0; 
    } 
    /* detects EGA or VGA cards */ 
    int huge detectEGA(void) 
    { 
       int driver, mode, sugmode = 0; 
       detectgraph(&driver, &mode); 
       if ((driver == EGA) || (driver == VGA)) 
          /* return suggested video mode number */ 
          return sugmode; 
       else 
          /* return an error code */ 
          return grError; 
    } 
    /* check for and report any graphics errors */ 
    void checkerrors(void) 
    { 
       int errorcode; 
       /* read result of last graphics operation */ 
       errorcode = graphresult(); 
       if (errorcode != grOk) 
       { 
          printf("Graphics error: %s
    ", grapherrormsg(errorcode)); 
          printf("Press any key to halt:"); 
          getch(); 
          exit(1); 
       } 
    } 
    
    

    函数名: installuserfont

    功 能: 安装未嵌入BGI系统的字体文件(CHR)

    用 法: int far installuserfont(char far *name);

    程序例:

    #include <graphics.h> 
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <conio.h> 
    /* function prototype */ 
    void checkerrors(void); 
    int main(void) 
    { 
       /* request auto detection */ 
       int gdriver = DETECT, gmode; 
       int userfont; 
       int midx, midy; 
       /* initialize graphics and local variables */ 
       initgraph(&gdriver, &gmode, ""); 
       midx = getmaxx() / 2; 
       midy = getmaxy() / 2; 
       /* check for any initialization errors */ 
       checkerrors(); 
       /* install a user defined font file */ 
       userfont = installuserfont("USER.CHR"); 
       /* check for any installation errors */ 
       checkerrors(); 
       /* select the user font */ 
       settextstyle(userfont, HORIZ_DIR, 4); 
       /* output some text */ 
       outtextxy(midx, midy, "Testing!"); 
       /* clean up */ 
       getch(); 
       closegraph(); 
       return 0; 
    } 
    /* check for and report any graphics errors */ 
    void checkerrors(void) 
    { 
       int errorcode; 
       /* read result of last graphics operation */ 
       errorcode = graphresult(); 
       if (errorcode != grOk) 
       { 
          printf("Graphics error: %s
    ", grapherrormsg(errorcode)); 
          printf("Press any key to halt:"); 
          getch(); 
          exit(1); 
       } 
     } 
      
      
      
    
    

    函数名: int86

    功 能: 通用8086软中断接口

    用 法: int int86(int intr_num, union REGS *inregs, union REGS *outregs);

    程序例:

    #include <stdio.h> 
    #include <conio.h> 
    #include <dos.h> 
    #define VIDEO 0x10 
    void movetoxy(int x, int y) 
    { 
       union REGS regs; 
       regs.h.ah = 2;  /* set cursor postion */ 
       regs.h.dh = y; 
       regs.h.dl = x; 
       regs.h.bh = 0;  /* video page 0 */ 
       int86(VIDEO, &regs, &regs); 
    } 
    int main(void) 
    { 
       clrscr(); 
       movetoxy(35, 10); 
       printf("Hello
    "); 
       return 0; 
    } 
      
      
    
    

    函数名: int86x

    功 能: 通用8086软中断接口

    用 法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs,

         struct SREGS *segregs); 
    
    

    程序例:

    #include <dos.h> 
    #include <process.h> 
    #include <stdio.h> 
    int main(void) 
    { 
       char filename[80]; 
       union REGS inregs, outregs; 
       struct SREGS segregs; 
       printf("Enter filename: "); 
       gets(filename); 
       inregs.h.ah = 0x43; 
       inregs.h.al = 0x21; 
       inregs.x.dx = FP_OFF(filename); 
       segregs.ds = FP_SEG(filename); 
       int86x(0x21, &inregs, &outregs, &segregs); 
       printf("File attribute: %X
    ", outregs.x.cx); 
       return 0; 
    } 
      
      
      
    
    

    函数名: intdos

    功 能: 通用DOS接口

    用 法: int intdos(union REGS *inregs, union REGS *outregs);

    程序例:

    #include <stdio.h> 
    #include <dos.h> 
    /* deletes file name; returns 0 on success, nonzero on failure */ 
    int delete_file(char near *filename) 
    { 
       union REGS regs; 
       int ret; 
       regs.h.ah = 0x41;                            /* delete file */ 
       regs.x.dx = (unsigned) filename; 
       ret = intdos(&regs, &regs); 
       /* if carry flag is set, there was an error */ 
       return(regs.x.cflag ? ret : 0); 
    } 
    int main(void) 
    { 
       int err; 
       err = delete_file("NOTEXIST.$$$"); 
       if (!err) 
          printf("Able to delete NOTEXIST.$$$
    "); 
       else 
          printf("Not Able to delete NOTEXIST.$$$
    "); 
       return 0; 
    } 
      
      
      
    
    

    函数名: intdosx

    功 能: 通用DOS中断接口

    用 法: int intdosx(union REGS *inregs, union REGS *outregs,

          struct SREGS *segregs); 
    
    

    程序例:

    #include <stdio.h> 
    #include <dos.h> 
    /* deletes file name; returns 0 on success, nonzero on failure */ 
    int delete_file(char far *filename) 
    { 
       union REGS regs; struct SREGS sregs; 
       int ret; 
       regs.h.ah = 0x41;                      /* delete file */ 
       regs.x.dx = FP_OFF(filename); 
       sregs.ds = FP_SEG(filename); 
       ret = intdosx(&regs, &regs, &sregs); 
       /* if carry flag is set, there was an error */ 
       return(regs.x.cflag ? ret : 0); 
    } 
    int main(void) 
    { 
       int err; 
       err = delete_file("NOTEXIST.$$$"); 
       if (!err) 
          printf("Able to delete NOTEXIST.$$$
    "); 
       else 
          printf("Not Able to delete NOTEXIST.$$$
    "); 
       return 0; 
    } 
      
      
    
    

    函数名: intr

    功 能: 改变软中断接口

    用 法: void intr(int intr_num, struct REGPACK *preg);

    程序例:

    #include <stdio.h> 
    #include <string.h> 
    #include <dir.h> 
    #include <dos.h> 
    #define CF 1  /* Carry flag */ 
    int main(void) 
    { 
       char directory[80]; 
       struct REGPACK reg; 
       printf("Enter directory to change to: "); 
       gets(directory); 
       reg.r_ax = 0x3B << 8;         /* shift 3Bh into  AH */ 
       reg.r_dx = FP_OFF(directory); 
       reg.r_ds = FP_SEG(directory); 
       intr(0x21, ®); 
       if (reg.r_flags & CF) 
          printf("Directory change failed
    "); 
       getcwd(directory, 80); 
       printf("The current directory is: %s
    ", directory); 
       return 0; 
    } 
      
      
    
    

    函数名: ioctl

    功 能: 控制I/O设备

    用 法: int ioctl(int handle, int cmd[,int *argdx, int argcx]);

    程序例:

    #include <stdio.h> 
    #include <dir.h> 
    #include <io.h> 
    int main(void) 
    { 
       int stat; 
       /* use func 8 to determine if the default drive is removable */ 
       stat = ioctl(0, 8, 0, 0); 
       if (!stat) 
          printf("Drive %c is removable.
    ", getdisk() + 'A'); 
       else 
          printf("Drive %c is not removable.
    ", getdisk() + 'A'); 
       return 0; 
    } 
      
      
      
    
    

    函数名: isatty

    功 能: 检查设备类型

    用 法: int isatty(int handle);

    程序例:

    #include <stdio.h> 
    #include <io.h> 
    int main(void) 
    { 
       int handle; 
       handle = fileno(stdprn); 
       if (isatty(handle)) 
          printf("Handle %d is a device type
    ", handle); 
       else 
          printf("Handle %d isn't a device type
    ", handle); 
       return 0; 
    } 
      
      
      
    
    

    函数名: itoa

    功 能: 把一整数转换为字符串

    用 法: char *itoa(int value, char *string, int radix);

    程序例:

    #include <stdlib.h> 
    #include <stdio.h> 
    int main(void) 
    { 
       int number = 12345; 
       char string[25]; 
       itoa(number, string, 10); 
       printf("integer = %d string = %s
    ", number, string); 
       return 0; 
    } 
      
      
    
    



    书画小说软件 制作更满意的读、更舒心的写、更轻松的公布

    最全古典小说网 由本软件公布所得
  • 相关阅读:
    洛谷 P3384 【模板】树链剖分
    codevs 4633 [Mz]树链剖分练习
    看一个人的回答有感(怎么判断数组中有没有未定义的值,如:[,,1,,3])
    bzoj2754: [SCOI2012]喵星球上的点名
    bzoj4456: [Zjoi2016]旅行者
    bzoj4574:Zjoi2016线段树 dp
    bzoj4455: [Zjoi2016]小星星
    bzoj4516: [Sdoi2016]生成魔咒
    uoj#207. 共价大爷游长沙
    bzoj4530:[Bjoi2014]大融合
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7229771.html
Copyright © 2020-2023  润新知