C语言库函数大全及应用实例六 函数名: getlinesettings 功 能: 取当前线型、模式和宽度 用 法: void far getlinesettings(struct linesettingstype far *lininfo): 程序例:
#i nclude #i nclude #i nclude #i nclude
/* 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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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 { sprintf(pval, "palette[%02d]: 0x%02X", i, pal.colors); outtextxy(0, y, pval); } }
/* clean up */ getch(); closegraph(); return 0; }
函数名: getpass 功 能: 读一个口令 用 法: char *getpass(char *prompt); 程序例:
#i nclude
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); 程序例:
#i nclude #i nclude #i nclude #i nclude #i nclude
#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 { x = random(maxx); y = random(maxy); color = random(maxcolor); putpixel(x, y, color); }
delay(DELAY_TIME); srand(seed); for (i=0; i { x = random(maxx); y = random(maxy); color = random(maxcolor); if (color == getpixel)
函数名: gets 功 能: 从流中取一字符串 用 法: char *gets(char *string); 程序例:
#i nclude
int main(void) { char string[80];
printf("Input a string:"); gets(string); printf("The string input was: %s\n", string); return 0; }
|