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
功 能: 从流中取