天天看点

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;

  /* scientific notation */

  num = 0.678e5;

  return(0);

}

函数名: geninterrupt

功  能: 产生一个软中断

用  法: void geninterrupt(int intr_num);

#include <conio.h>

#include <dos.h>

/* function prototype */

void writechar(char ch);

  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>

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

  closegraph();

函数名: getaspectratio

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

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

  int xasp, yasp, midx, midy;

/* get current aspect ratio settings */

  getaspectratio(&xasp, &yasp);

/* draw normal circle */

  circle(midx, midy, 100);

/* draw wide circle */

  cleardevice();

  setaspectratio(xasp/2, yasp);

/* draw narrow circle */

  setaspectratio(xasp, yasp/2);

/* clean up */

函数名: getbkcolor

功  能: 返回当前背景颜色

用  法: int far getbkcolor(void);

#include <string.h>

  /* request auto detection */

  int bkcolor, midx, midy;

  char bkname[35];

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

函数名: getc

功  能: 从流中取字符

用  法: int getc(file *stream);

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

函数名: getcbrk

功  能: 获取control_break设置

用  法: int getcbrk(void);

  if (getcbrk())

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

  else

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

函数名: getch

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

用  法: int getch(void);

  ch = getche();

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

函数名: getchar

功  能: 从stdin流中读字符

用  法: int getchar(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);

函数名: getche

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

用  法: int getche(void);

函数名: getcolor

功  能: 返回当前画线颜色

用  法: int far getcolor(void);

  int color, midx, midy;

  char colname[35];

/* get the current drawing color */

  color = getcolor();

  itoa(color, colname, 10);

  strcat(colname,

  " is the current drawing color.");

  outtextxy(midx, midy, colname);

函数名: getcurdir

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

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

#include <dir.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);

  char curdir[maxpath];

  current_directory(curdir);

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

函数名: getcwd

功  能: 取当前工作目录

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

  char buffer[maxpath];

  getcwd(buffer, maxpath);

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

函数名: getdate

功  能: 取dos日期

用  法: void getdate(struct *dateblk);

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

函数名: getdefaultpalette

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

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

  int i;

/* structure for returning palette copy */

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

/* return a pointer to the default palette */

  pal = getdefaultpalette();

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

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

            pal->colors[i]);

函数名: getdisk

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

用  法: int getdisk(void);

  int disk;

  disk = getdisk() + 'a';

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

   disk);

函数名: getdrivername

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

用  法: char *getdrivename(void);

/* stores the device driver name */

  char *drivername;

             grapherrormsg(errorcode));

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

  drivername = getdrivername();

/* for centering text on the screen */

/* output the name of the driver */

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

     drivername);

函数名: getdta

功  能: 取磁盘传输地址

用  法: char far *getdta(void);

  char far *dta;

  dta = getdta();

  printf("the current disk transfer \

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

函数名: getenv

功  能: 从环境中取字符串

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

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

  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");

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

函数名: getfillpattern

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

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

  int maxx, maxy;

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

  /* initialize graphics and local variables */

  /* read result of initialization */

  if (errorcode != grok)  /* an error occurred */

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

     exit(1); /* terminate with an error code */

  maxx = getmaxx();

  maxy = getmaxy();

  /* select a user defined fill pattern */

  setfillpattern(pattern, getmaxcolor());

  /* fill the screen with the pattern */

  bar(0, 0, maxx, maxy);

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

  /* fill the screen with the new pattern */

函数名: getfillsettings

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

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

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

       };

  struct fillsettingstype fillinfo;

  char patstr[40], colstr[40];

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

  outtextxy(midx, midy, patstr);

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

函数名: getftime

功  能: 取文件日期和时间

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

#include <io.h>

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

函数名: getgraphmode

功  能: 返回当前图形模式

用  法: int far getgraphmode(void);

  int midx, midy, mode;

  char numname[80], modename[80];

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

  outtextxy(midx, midy, numname);

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

            modename);

函数名: getp_w_picpath

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

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

    void far *bitmap);

#include <alloc.h>

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

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

int maxx, maxy;

  int gdriver=detect, gmode, errorcode;

  void far *ptr[4];

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

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

  /* draw an p_w_picpath 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 */

void save_screen(void far *buf[4])

  unsigned size;

  int ystart=0, yend, yincr, block;

  yincr = (maxy+1) / 4;

  yend = yincr;

  size = p_w_picpathsize(0, ystart, maxx, yend); /* get byte size of p_w_picpath */

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

     }

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

     ystart = yend + 1;

     yend += yincr + 1;

void restore_screen(void far *buf[4])

     putp_w_picpath(0, ystart, buf[block], copy_put);

     farfree(buf[block]);

函数名: getlinesettings

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

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

/* the names of the line styles supported */

char *lname[] = { "solid_line",

                 "dotted_line",

                 "center_line",

                 "dashed_line",

                 "userbit_line"

               };

  struct linesettingstype lineinfo;

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

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

  outtextxy(midx, midy, lstyle);

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

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

函数名: getmaxcolor

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

用  法: int far getmaxcolor(void);

  char colstr[80];

  /* initialize graphics and local variables

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

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

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

  outtextxy(midx, midy, colstr);

函数名: getmaxx

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

用  法: int far getmaxx(void);

  char xrange[80], yrange[80];

  /* convert max resolution values into strings */

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

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

  outtextxy(midx, midy, xrange);

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

函数名: getmaxy

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

用  法: int far getmaxy(void);

函数名: getmodename

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

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

  /* request autodetection */

  /* get mode number and name strings */

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

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

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

函数名: getmoderange

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

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

   int far *himode);

  int low, high;

  char mrange[80];

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

  outtextxy(midx, midy, mrange);

函数名: getpalette

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

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

  struct palettetype pal;

  char psize[80], pval[20];

  int i, ht;

  int y = 10;

/* grab a copy of the palette */

  getpalette(&pal);

/* convert palette info. into strings */

  sprintf(psize, "the palette has %d \

          modifiable entries.", pal.size);

  outtextxy(0, y, psize);

  if (pal.size != 0)

     ht = textheight("w");

     y += 2*ht;

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

 values:");

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

 sprintf(pval,

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

  pal.colors[i]);

 outtextxy(0, y, pval);

函数名: getpass

功  能: 读一个口令

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

  char *password;

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

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

   password);

函数名: getpixel

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

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

#define pixel_count 1000

#define delay_time  100  /* in milliseconds */

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

      maxcolor, seed;

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

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

  char string[80];

  printf("input a string:");

  gets(string);

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

  string);

函数名: gettext

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

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

char buffer[4096];

  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...");

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

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

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

函数名: gettextinfo

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

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

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

函数名: gettextsettings

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

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

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

  struct textsettingstype textinfo;

  int midx, midy, ht;

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

  char hjuststr[80], vjuststr[80];

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

  ht = textheight("w");

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

函数名: gettime

功  能: 取得系统时间

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

#include   <stdio.h>

#include   <dos.h>

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

函数名: getvect

功  能: 取得中断向量入口

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

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

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

int looping = 1;

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

  if (getverify())

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

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

函数名: getviewsetting

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

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

char *clip[] = { "off", "on" };

  struct viewporttype viewinfo;

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

  /* get information about current viewport */

  getviewsettings(&viewinfo);

  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]);

  outtextxy(midx, midy, topstr);

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

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

函数名: getw

功  能: 从流中取

继续阅读