C语言库函数_-_G开头

C语言函数 - G开头


函数名: gcvt

功  能: 把浮点数转换成字符串

用  法: char *gcvt(double value, int ndigit, char *buf);

程序例:


#include <stdlib.h>

#include <stdio.h>


int main(void)

{

  char str[25];

  double num;

  int sig = 5; /* significant digits */


  /* a regular number */

  num = 9.876;

  gcvt(num, sig, str);

  printf("string = %s\n", str);


  /* a negative number */

  num = -123.4567;

  gcvt(num, sig, str);

  printf("string = %s\n", str);


  /* scientific notation */

  num = 0.678e5;

  gcvt(num, sig, str);

  printf("string = %s\n", str);


  return(0);

}





函数名: geninterrupt

功  能: 产生一个软中断

用  法: void geninterrupt(int intr_num);

程序例:


#include <conio.h>

#include <dos.h>


/* function prototype */

void writechar(char ch);


int main(void)

{

  clrscr();

  gotoxy(80,25);

  writechar('*');

  getch();

  return 0;

}


/*

  outputs a character at the current cursor

  position using the video BIOS to avoid the

  scrolling of the screen when writing to

  location (80,25).

*/


void writechar(char ch)

{

  struct text_info ti;

  /* grab current text settings */

  gettextinfo(&ti);

  /* interrupt 0x10 sub-function 9 */

  _AH = 9;

  /* character to be output */

  _AL = ch;

  _BH = 0;                  /* video page */

  _BL = ti.attribute;  /* video attribute */

  _CX = 1;           /* repetition factor */

  geninterrupt(0x10);  /* output the char */

}




函数名: getarccoords

功  能: 取得最后一次调用arc的坐标

用  法: void far getarccoords(struct arccoordstype far *arccoords);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct arccoordstype arcinfo;

  int midx, midy;

  int stangle = 45, endangle = 270;

  char sstr[80], estr[80];


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;


/* draw arc and get coordinates */

  setcolor(getmaxcolor());

  arc(midx, midy, stangle, endangle, 100);

  getarccoords(&arcinfo);


/* convert arc information into strings */

  sprintf(sstr, "*- (%d, %d)",

          arcinfo.xstart, arcinfo.ystart);

  sprintf(estr, "*- (%d, %d)",

          arcinfo.xend, arcinfo.yend);


  /* output the arc information */

  outtextxy(arcinfo.xstart,

            arcinfo.ystart, sstr);

  outtextxy(arcinfo.xend,

            arcinfo.yend, estr);


  /* clean up */

  getch();

  closegraph();

  return 0;

}





函数名: getaspectratio

功  能: 返回当前图形模式的纵横比

用  法: void far getaspectratio(int far *xasp, int far *yasp);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int xasp, yasp, midx, midy;


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;

  setcolor(getmaxcolor());


/* get current aspect ratio settings */

  getaspectratio(&xasp, &yasp);


/* draw normal circle */

  circle(midx, midy, 100);

  getch();


/* draw wide circle */

  cleardevice();

  setaspectratio(xasp/2, yasp);

  circle(midx, midy, 100);

  getch();


/* draw narrow circle */

  cleardevice();

  setaspectratio(xasp, yasp/2);

  circle(midx, midy, 100);


/* clean up */

  getch();

  closegraph();

  return 0;

}





函数名: getbkcolor

功  能: 返回当前背景颜色

用  法: int far getbkcolor(void);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int bkcolor, midx, midy;

  char bkname[35];


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;

  setcolor(getmaxcolor());


/* for centering text on the display */

  settextjustify(CENTER_TEXT, CENTER_TEXT);


/* get the current background color */

  bkcolor = getbkcolor();


/* convert color value into a string */

  itoa(bkcolor, bkname, 10);

  strcat(bkname,

" is the current background color.");


/* display a message */

  outtextxy(midx, midy, bkname);


/* clean up */

  getch();

  closegraph();

  return 0;

}





函数名: getc

功  能: 从流中取字符

用  法: int getc(FILE *stream);

程序例:


#include <stdio.h>


int main(void)

{

  char ch;


  printf("Input a character:");

/* read a character from the

  standard input stream */

  ch = getc(stdin);

  printf("The character input was: '%c'\n",

         ch);

  return 0;

}





函数名: getcbrk

功  能: 获取Control_break设置

用  法: int getcbrk(void);

程序例:


#include <stdio.h>

#include <dos.h>


int main(void)

{

  if (getcbrk())

     printf("Cntrl-brk flag is on\n");

  else

     printf("Cntrl-brk flag is off\n");


  return 0;

}




函数名: getch

功  能: 从控制台无回显地取一个字符

用  法: int getch(void);

程序例:


#include <stdio.h>

#include <conio.h>


int main(void)

{

  char ch;


  printf("Input a character:");

  ch = getche();

  printf("\nYou input a '%c'\n", ch);

  return 0;

}




函数名: getchar

功  能: 从stdin流中读字符

用  法: int getchar(void);

程序例:


#include <stdio.h>


int main(void)

{

  int c;


  /* Note that getchar reads from stdin and

     is line buffered; this means it will

     not return until you press ENTER. */


  while ((c = getchar()) != '\n')

     printf("%c", c);


  return 0;

}




函数名: getche

功  能: 从控制台取字符(带回显)

用  法: int getche(void);

程序例:


#include <stdio.h>

#include <conio.h>


int main(void)

{

  char ch;


  printf("Input a character:");

  ch = getche();

  printf("\nYou input a '%c'\n", ch);

  return 0;

}




函数名: getcolor

功  能: 返回当前画线颜色

用  法: int far getcolor(void);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int color, midx, midy;

  char colname[35];


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;

  setcolor(getmaxcolor());


/* for centering text on the display */

  settextjustify(CENTER_TEXT, CENTER_TEXT);


/* get the current drawing color */

  color = getcolor();


/* convert color value into a string */

  itoa(color, colname, 10);

  strcat(colname,

  " is the current drawing color.");


/* display a message */

  outtextxy(midx, midy, colname);


/* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getcurdir

功  能: 取指定驱动器的当前目录

用  法: int getcurdir(int drive, char *direc);

程序例:


#include <dir.h>

#include <stdio.h>

#include <string.h>


char *current_directory(char *path)

{

  strcpy(path, "X:\\");      /* fill string with form of response: X:\ */

  path[0] = 'A' + getdisk();    /* replace X with current drive letter */

  getcurdir(0, path+3);  /* fill rest of string with current directory */

  return(path);

}


int main(void)

{

  char curdir[MAXPATH];


  current_directory(curdir);

  printf("The current directory is %s\n", curdir);


  return 0;

}




函数名: getcwd

功  能: 取当前工作目录

用  法: char *getcwd(char *buf, int n);

程序例:


#include <stdio.h>

#include <dir.h>


int main(void)

{

  char buffer[MAXPATH];


  getcwd(buffer, MAXPATH);

  printf("The current directory is: %s\n", buffer);

  return 0;

}




函数名: getdate

功  能: 取DOS日期

用  法: void getdate(struct *dateblk);

程序例:


#include <dos.h>

#include <stdio.h>


int main(void)

{

  struct date d;


  getdate(&d);

  printf("The current year is: %d\n",

  d.da_year);

  printf("The current day is: %d\n",

  d.da_day);

  printf("The current month is: %d\n",

  d.da_mon);

  return 0;

}




函数名: getdefaultpalette

功  能: 返回调色板定义结构

用  法: struct palettetype *far getdefaultpalette(void);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int i;


/* structure for returning palette copy */

  struct palettetype far *pal=(void *) 0;


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  setcolor(getmaxcolor());


/* return a pointer to the default palette */

  pal = getdefaultpalette();


  for (i=0; i<16; i++)

  {

     printf("colors[%d] = %d\n", i,

            pal->colors[i]);

     getch();

  }


/* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getdisk

功  能: 取当前磁盘驱动器号

用  法: int getdisk(void);

程序例:


#include <stdio.h>

#include <dir.h>


int main(void)

{

  int disk;


  disk = getdisk() + 'A';

  printf("The current drive is: %c\n",

   disk);

  return 0;

}





函数名: getdrivername

功  能: 返回指向包含当前图形驱动程序名字的字符串指针

用  法: char *getdrivename(void);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;


/* stores the device driver name */

  char *drivername;


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

             grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  setcolor(getmaxcolor());


/* get name of the device driver in use */

  drivername = getdrivername();


/* for centering text on the screen */

  settextjustify(CENTER_TEXT, CENTER_TEXT);


/* output the name of the driver */

  outtextxy(getmaxx() / 2, getmaxy() / 2,

     drivername);


/* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getdta

功  能: 取磁盘传输地址

用  法: char far *getdta(void);

程序例:


#include <dos.h>

#include <stdio.h>


int main(void)

{

  char far *dta;


  dta = getdta();

  printf("The current disk transfer \

  address is: %Fp\n", dta);

  return 0;

}




函数名: getenv

功  能: 从环境中取字符串

用  法: char *getenv(char *envvar);

程序例:


#include <stdlib.h>

#include <stdio.h>



int main(void)

{

   char *s;


   s=getenv("COMSPEC");       /* get the comspec environment parameter */

   printf("Command processor: %s\n",s);   /* display comspec parameter */


   return 0;

}





函数名: getfat, getfatd

功  能: 取文件分配表信息

用  法: void getfat(int drive, struct fatinfo *fatblkp);

程序例:


#include <stdio.h>

#include <dos.h>


int main(void)

{

  struct fatinfo diskinfo;

  int flag = 0;


  printf("Please insert disk in drive A\n");

  getchar();


  getfat(1, &diskinfo);

/* get drive information */


  printf("\nDrive A: is ");

  switch((unsigned char) diskinfo.fi_fatid)

  {

     case 0xFD:

printf("360K low density\n");

break;


     case 0xF9:

printf("1.2 Meg high density\n");

break;


     default:

printf("unformatted\n");

flag = 1;

  }


  if (!flag)

  {

     printf("  sectors per cluster %5d\n",

      diskinfo.fi_sclus);

     printf("   number of clusters %5d\n",

      diskinfo.fi_nclus);

     printf("     bytes per sector %5d\n",

      diskinfo.fi_bysec);

  }


  return 0;

}




函数名: getfillpattern

功  能: 将用户定义的填充模式拷贝到内存中

用  法: void far getfillpattern(char far *upattern);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int maxx, maxy;

  char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x25, 0x27, 0x04, 0x04};


  /* 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 */

  }


  maxx = getmaxx();

  maxy = getmaxy();

  setcolor(getmaxcolor());


  /* select a user defined fill pattern */

  setfillpattern(pattern, getmaxcolor());


  /* fill the screen with the pattern */

  bar(0, 0, maxx, maxy);


  getch();


  /* get the current user defined fill pattern */

  getfillpattern(pattern);


  /* alter the pattern we grabbed */

  pattern[4] -= 1;

  pattern[5] -= 3;

  pattern[6] += 3;

  pattern[7] -= 4;


  /* select our new pattern */

  setfillpattern(pattern, getmaxcolor());


  /* fill the screen with the new pattern */

  bar(0, 0, maxx, maxy);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getfillsettings

功  能: 取得有关当前填充模式和填充颜色的信息

用  法: void far getfillsettings(struct fillsettingstype far *fillinfo);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


/  the names of the fill styles supported */

char *fname[] = { "EMPTY_FILL",

                 "SOLID_FILL",

                 "LINE_FILL",

                 "LTSLASH_FILL",

                 "SLASH_FILL",

                 "BKSLASH_FILL",

                 "LTBKSLASH_FILL",

                 "HATCH_FILL",

                 "XHATCH_FILL",

                 "INTERLEAVE_FILL",

                 "WIDE_DOT_FILL",

                 "CLOSE_DOT_FILL",

                 "USER_FILL"

       };


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct fillsettingstype fillinfo;

  int midx, midy;

  char patstr[40], colstr[40];


  /* 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;


  /* get information about current fill pattern and color */

  getfillsettings(&fillinfo);


  /* convert fill information into strings */

  sprintf(patstr, "%s is the fill style.", fname[fillinfo.pattern]);

  sprintf(colstr, "%d is the fill color.", fillinfo.color);


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, patstr);

  outtextxy(midx, midy+2*textheight("W"), colstr);


  /* clean up */

  getch();

  closegraph();

  return 0;

}





函数名: getftime

功  能: 取文件日期和时间

用  法: int getftime(int handle, struct ftime *ftimep);

程序例:


#include <stdio.h>

#include <io.h>


int main(void)

{

  FILE *stream;

  struct ftime ft;


  if ((stream = fopen("TEST.$$$",

       "wt")) == NULL)

  {

     fprintf(stderr,

            "Cannot open output file.\n");

     return 1;

  }

  getftime(fileno(stream), &ft);

  printf("File time: %u:%u:%u\n",

         ft.ft_hour, ft.ft_min,

         ft.ft_tsec * 2);

  printf("File date: %u/%u/%u\n",

  ft.ft_month, ft.ft_day,

  ft.ft_year+1980);

  fclose(stream);

  return 0;

}





函数名: getgraphmode

功  能: 返回当前图形模式

用  法: int far getgraphmode(void);

程序例:


#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, mode;

  char numname[80], modename[80];


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;


/* get mode number and name strings */

  mode = getgraphmode();

  sprintf(numname,

          "%d is the current mode number.",

          mode);

  sprintf(modename,

          "%s is the current graphics mode",

          getmodename(mode));


/* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, numname);

  outtextxy(midx, midy+2*textheight("W"),

            modename);


/* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getftime

功  能: 取文件日期和时间

用  法: int getftime(int handle, struct ftime *ftimep);

程序例:


#include <stdio.h>

#include <io.h>


int main(void)

{

  FILE *stream;

  struct ftime ft;


  if ((stream = fopen("TEST.$$$",

       "wt")) == NULL)

  {

     fprintf(stderr,

            "Cannot open output file.\n");

     return 1;

  }

  getftime(fileno(stream), &ft);

  printf("File time: %u:%u:%u\n",

         ft.ft_hour, ft.ft_min,

         ft.ft_tsec * 2);

  printf("File date: %u/%u/%u\n",

  ft.ft_month, ft.ft_day,

  ft.ft_year+1980);

  fclose(stream);

  return 0;

}





函数名: getgraphmode

功  能: 返回当前图形模式

用  法: int far getgraphmode(void);

程序例:


#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, mode;

  char numname[80], modename[80];


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  midx = getmaxx() / 2;

  midy = getmaxy() / 2;


/* get mode number and name strings */

  mode = getgraphmode();

  sprintf(numname,

          "%d is the current mode number.",

          mode);

  sprintf(modename,

          "%s is the current graphics mode",

          getmodename(mode));


/* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, numname);

  outtextxy(midx, midy+2*textheight("W"),

            modename);


/* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getimage

功  能: 将指定区域的一个位图存到主存中

用  法: void far getimage(int left, int top, int right, int bottom,

    void far *bitmap);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <alloc.h>


void save_screen(void far *buf[4]);

void restore_screen(void far *buf[4]);


int maxx, maxy;


int main(void)

{

  int gdriver=DETECT, gmode, errorcode;

  void far *ptr[4];


  /* auto-detect the graphics driver and mode */

  initgraph(&gdriver, &gmode, "");

  errorcode = graphresult(); /* check for any errors */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n", grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

     exit(1);

  }

  maxx = getmaxx();

  maxy = getmaxy();


  /* draw an image on the screen */

  rectangle(0, 0, maxx, maxy);

  line(0, 0, maxx, maxy);

  line(0, maxy, maxx, 0);


  save_screen(ptr);    /* save the current screen */

  getch();             /* pause screen */

  cleardevice();       /* clear screen */

  restore_screen(ptr); /* restore the screen */

  getch();             /* pause screen */


  closegraph();

  return 0;

}


void save_screen(void far *buf[4])

{

  unsigned size;

  int ystart=0, yend, yincr, block;


  yincr = (maxy+1) / 4;

  yend = yincr;

  size = imagesize(0, ystart, maxx, yend); /* get byte size of image */


  for (block=0; block<=3; block++)

  {

     if ((buf[block] = farmalloc(size)) == NULL)

     {

        closegraph();

        printf("Error: not enough heap space in save_screen().\n");

 exit(1);

     }


     getimage(0, ystart, maxx, yend, buf[block]);

     ystart = yend + 1;

     yend += yincr + 1;

  }

}


void save_screen(void far *buf[4])

{

  unsigned size;

  int ystart=0, yend, yincr, block;


  yincr = (maxy+1) / 4;

  yend = yincr;

  size = imagesize(0, ystart, maxx, yend); /* get byte size of image */


  for (block=0; block<=3; block++)

  {

     if ((buf[block] = farmalloc(size)) == NULL)

     {

        closegraph();

        printf("Error: not enough heap space in save_screen().\n");

 exit(1);

     }


     getimage(0, ystart, maxx, yend, buf[block]);

     ystart = yend + 1;

     yend += yincr + 1;

  }

}


void restore_screen(void far *buf[4])

{

  int ystart=0, yend, yincr, block;


  yincr = (maxy+1) / 4;

  yend = yincr;


  for (block=0; block<=3; block++)

  {

     putimage(0, ystart, buf[block], COPY_PUT);

     farfree(buf[block]);

     ystart = yend + 1;

     yend += yincr + 1;

  }

}




函数名: getlinesettings

功  能: 取当前线型、模式和宽度

用  法: void far getlinesettings(struct linesettingstype far *lininfo):

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


/* the names of the line styles supported */

char *lname[] = { "SOLID_LINE",

                 "DOTTED_LINE",

                 "CENTER_LINE",

                 "DASHED_LINE",

                 "USERBIT_LINE"

               };


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct linesettingstype lineinfo;

  int midx, midy;

  char lstyle[80], lpattern[80], lwidth[80];


  /* 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;


  /* get information about current line settings */

  getlinesettings(&lineinfo);


  /* convert line information into strings */

  sprintf(lstyle, "%s is the line style.",

          lname[lineinfo.linestyle]);

  sprintf(lpattern, "0x%X is the user-defined line pattern.",

          lineinfo.upattern);

  sprintf(lwidth, "%d is the line thickness.",

   lineinfo.thickness);


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, lstyle);

  outtextxy(midx, midy+2*textheight("W"), lpattern);

  outtextxy(midx, midy+4*textheight("W"), lwidth);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getmaxcolor

功  能: 返回可以传给函数setcolor的最大颜色值

用  法: int far getmaxcolor(void);

程序例:


#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;

  char colstr[80];


  /* 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;


  /* grab the color info. and convert it to a string */

  sprintf(colstr, "This mode supports colors 0..%d", getmaxcolor());


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, colstr);


  /* clean up */

  getch();

  closegraph();

  return 0;

}





函数名: getmaxx

功  能: 返回屏幕的最大x坐标

用  法: int far getmaxx(void);

程序例:


#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;

  char xrange[80], yrange[80];


  /* 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;


  /* convert max resolution values into strings */

  sprintf(xrange, "X values range from 0..%d", getmaxx());

  sprintf(yrange, "Y values range from 0..%d", getmaxy());


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, xrange);

  outtextxy(midx, midy+textheight("W"), yrange);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getmaxy

功  能: 返回屏幕的最大y坐标

用  法: int far getmaxy(void);

程序例:


#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;

  char xrange[80], yrange[80];


  /* 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;


  /* convert max resolution values into strings */

  sprintf(xrange, "X values range from 0..%d", getmaxx());

  sprintf(yrange, "Y values range from 0..%d", getmaxy());


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, xrange);

  outtextxy(midx, midy+textheight("W"), yrange);


  /* clean up */

  getch();

  closegraph();

  return 0;

}



函数名: getmodename

功  能: 返回含有指定图形模式名的字符串指针

用  法: char *far getmodename(int mode_name);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

  /* request autodetection */

  int gdriver = DETECT, gmode, errorcode;

  int midx, midy, mode;

  char numname[80], modename[80];


  /* 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;


  /* get mode number and name strings */

  mode = getgraphmode();

  sprintf(numname, "%d is the current mode number.", mode);

  sprintf(modename, "%s is the current graphics mode.", getmodename(mode));


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, numname);

  outtextxy(midx, midy+2*textheight("W"), modename);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getmoderange

功  能: 取给定图形驱动程序的模式范围

用  法: void far getmoderange(int graphdriver, int far *lomode,

   int far *himode);

程序例:


#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;

  int low, high;

  char mrange[80];


  /* 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;


  /* get the mode range for this driver */

  getmoderange(gdriver, &low, &high);


  /* convert mode range info. into strings */

  sprintf(mrange, "This driver supports modes %d..%d", low, high);


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, mrange);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getpalette

功  能: 返回有关当前调色板的信息

用  法: void far getpalette(struct palettetype far *palette);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


int main(void)

{

/* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct palettetype pal;

  char psize[80], pval[20];

  int i, ht;

  int y = 10;


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


/* grab a copy of the palette */

  getpalette(&pal);


/* convert palette info. into strings */

  sprintf(psize, "The palette has %d \

          modifiable entries.", pal.size);


/* display the information */

  outtextxy(0, y, psize);

  if (pal.size != 0)

  {

     ht = textheight("W");

     y += 2*ht;

     outtextxy(0, y, "Here are the current \

 values:");

     y += 2*ht;

     for (i=0; i<pal.size; i++, y+=ht)

     {

 sprintf(pval,

  "palette[%02d]: 0x%02X", i,

  pal.colors[i]);

 outtextxy(0, y, pval);

     }

  }


/* clean up */

  getch();

  closegraph();

  return 0;

}



函数名: getpass

功  能: 读一个口令

用  法: char *getpass(char *prompt);

程序例:


#include <conio.h>


int main(void)

{

  char *password;


  password = getpass("Input a password:");

  cprintf("The password is: %s\r\n",

   password);

  return 0;

}





函数名: getpixel

功  能: 取得指定像素的颜色

用  法: int far getpixel(int x, int y);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <dos.h>


#define PIXEL_COUNT 1000

#define DELAY_TIME  100  /* in milliseconds */


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  int i, x, y, color, maxx, maxy,

      maxcolor, seed;


/* initialize graphics and local variables */

  initgraph(&gdriver, &gmode, "");


/* read result of initialization */

  errorcode = graphresult();

/* an error occurred */

  if (errorcode != grOk)

  {

     printf("Graphics error: %s\n",

            grapherrormsg(errorcode));

     printf("Press any key to halt:");

     getch();

/* terminate with an error code */

     exit(1);

  }


  maxx = getmaxx() + 1;

  maxy = getmaxy() + 1;

  maxcolor = getmaxcolor() + 1;


  while (!kbhit())

  {

/* seed the random number generator */

     seed = random(32767);

     srand(seed);

     for (i=0; i<PIXEL_COUNT; i++)

     {

        x = random(maxx);

        y = random(maxy);

        color = random(maxcolor);

        putpixel(x, y, color);

     }


     delay(DELAY_TIME);

     srand(seed);

     for (i=0; i<PIXEL_COUNT; i++)

     {

        x = random(maxx);

        y = random(maxy);

        color = random(maxcolor);

        if (color == getpixel��? ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;h;(;);;; ;e;t;p;s;p;(;););;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;e;s;e;t; ;t;o; ;s;e;g;m;e;n;t; ;o;f; ;t;h;e; ;P;S;P; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;i;n;e; ;i;s; ;l;o;c;a;t;e;d; ;a;t; ;o;f;f;s;e;t; ;0;x;8;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;t; ;o;f; ;P;S;P; ; ; ; ; ; ; ; ;



函数名: gets

功  能: 从流中取一字符串

用  法: char *gets(char *string);

程序例:


#include <stdio.h>


int main(void)

{

  char string[80];


  printf("Input a string:");

  gets(string);

  printf("The string input was: %s\n",

  string);

  return 0;

}




函数名: gettext

功  能: 将文本方式屏幕上的文本拷贝到存储区

用  法: int gettext(int left, int top, int right, int  bottom, void *destin);

程序例:


#include <conio.h>


char buffer[4096];


int main(void)

{

  int i;

  clrscr();

  for (i = 0; i <= 20; i++)

     cprintf("Line #%d\r\n", i);

  gettext(1, 1, 80, 25, buffer);

  gotoxy(1, 25);

  cprintf("Press any key to clear screen...");

  getch();

  clrscr();

  gotoxy(1, 25);

  cprintf("Press any key to restore screen...");

  getch();

  puttext(1, 1, 80, 25, buffer);

  gotoxy(1, 25);

  cprintf("Press any key to quit...");

  getch();

  return 0;

}




函数名: gettextinfo

功  能: 取得文本模式的显示信息

用  法: void gettextinfo(struct text_info *inforec);

程序例:


#include <conio.h>


int main(void)

{

  struct text_info ti;

  gettextinfo(&ti);

  cprintf("window left      %2d\r\n",ti.winleft);

  cprintf("window top       %2d\r\n",ti.wintop);

  cprintf("window right     %2d\r\n",ti.winright);

  cprintf("window bottom    %2d\r\n",ti.winbottom);

  cprintf("attribute        %2d\r\n",ti.attribute);

  cprintf("normal attribute %2d\r\n",ti.normattr);

  cprintf("current mode     %2d\r\n",ti.currmode);

  cprintf("screen height    %2d\r\n",ti.screenheight);

  cprintf("screen width     %2d\r\n",ti.screenwidth);

  cprintf("current x        %2d\r\n",ti.curx);

  cprintf("current y        %2d\r\n",ti.cury);

  return 0;

}




函数名: gettextsettings

功  能: 返回有关当前图形文本字体的信息

用  法: void far gettextsettings(struct textsettingstype far *textinfo);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


/* the names of the fonts supported */

char *font[] = { "DEFAULT_FONT",

                "TRIPLEX_FONT",

                "SMALL_FONT",

                "SANS_SERIF_FONT",

                "GOTHIC_FONT"

              };


/* the names of the text directions supported */

char *dir[] = { "HORIZ_DIR", "VERT_DIR" };


/* horizontal text justifications supported */

char *hjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" };


/* vertical text justifications supported */

char *vjust[] = { "BOTTOM_TEXT", "CENTER_TEXT", "TOP_TEXT" };


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct textsettingstype textinfo;

  int midx, midy, ht;

  char fontstr[80], dirstr[80], sizestr[80];

  char hjuststr[80], vjuststr[80];


  /* 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;


  /* get information about current text settings */

  gettextsettings(&textinfo);


  /* convert text information into strings */

  sprintf(fontstr, "%s is the text style.", font[textinfo.font]);

  sprintf(dirstr, "%s is the text direction.", dir[textinfo.direction]);

  sprintf(sizestr, "%d is the text size.", textinfo.charsize);

  sprintf(hjuststr, "%s is the horizontal justification.",

          hjust[textinfo.horiz]);

  sprintf(vjuststr, "%s is the vertical justification.",

          vjust[textinfo.vert]);


  /* display the information */

  ht = textheight("W");

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  outtextxy(midx, midy, fontstr);

  outtextxy(midx, midy+2*ht, dirstr);

  outtextxy(midx, midy+4*ht, sizestr);

  outtextxy(midx, midy+6*ht, hjuststr);

  outtextxy(midx, midy+8*ht, vjuststr);


  /* clean up */

  getch();

  closegraph();

  return 0;

}



函数名: gettime

功  能: 取得系统时间

用  法: void gettime(struct time *timep);

程序例:


#include   <stdio.h>

#include   <dos.h>


int main(void)

{

  struct  time t;


  gettime(&t);

  printf("The current time is: %2d:%02d:%02d.%02d\n",

         t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);

  return 0;

}





函数名: getvect

功  能: 取得中断向量入口

用  法: void interrupt(*getvect(int intr_num));

程序例:


#include <stdio.h>

#include <dos.h>


void interrupt get_out(); /* interrupt prototype */


void interrupt (*oldfunc)(); /* interrupt function pointer */

int looping = 1;


int main(void)

{

 puts("Press <Shift><Prt Sc> to terminate");


 /* save the old interrupt */

 oldfunc  = getvect(5);


  /* install interrupt handler */

 setvect(5,get_out);


  /* do nothing */

 while (looping);


  /* restore to original interrupt routine */

  setvect(5,oldfunc);


 puts("Success");

 return 0;

}

void interrupt get_out()

{

 looping = 0; /* change global variable to get out of loop */

}




函数名: getverify

功  能: 返回DOS校验标志状态

用  法: int getverify(void);

程序例:


#include <stdio.h>

#include <dos.h>


int main(void)

{

  if (getverify())

     printf("DOS verify flag is on\n");

  else

     printf("DOS verify flag is off\n");

  return 0;

}



函数名: getviewsetting

功  能: 返回有关当前视区的信息

用  法: void far getviewsettings(struct viewporttype far *viewport);

程序例:


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>


char *clip[] = { "OFF", "ON" };


int main(void)

{

  /* request auto detection */

  int gdriver = DETECT, gmode, errorcode;

  struct viewporttype viewinfo;

  int midx, midy, ht;

  char topstr[80], botstr[80], clipstr[80];


  /* 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;


  /* get information about current viewport */

  getviewsettings(&viewinfo);


  /* convert text information into strings */

  sprintf(topstr, "(%d, %d) is the upper left viewport corner.",

          viewinfo.left, viewinfo.top);

  sprintf(botstr, "(%d, %d) is the lower right viewport corner.",

          viewinfo.right, viewinfo.bottom);

  sprintf(clipstr, "Clipping is turned %s.", clip[viewinfo.clip]);


  /* display the information */

  settextjustify(CENTER_TEXT, CENTER_TEXT);

  ht = textheight("W");

  outtextxy(midx, midy, topstr);

  outtextxy(midx, midy+2*ht, botstr);

  outtextxy(midx, midy+4*ht, clipstr);


  /* clean up */

  getch();

  closegraph();

  return 0;

}




函数名: getw

功  能: 从流中取

你可能感兴趣的:(C语言)