读书人

Linux C语言惯用函数 03

发布时间: 2012-12-25 16:18:28 作者: rapoo

Linux C语言常用函数 03

?

函数名:?gcvt?

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

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

程序例:?

#include?;?

#include?;?

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

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

#include?;?

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

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

#include?;?

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

#include?;?

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

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

#include?;?

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

#include?;?

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

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

#include?;?

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

#include?;?

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

#include?;?

#include?;?

#include?;?

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

getch();?

}?

/*?clean?up?*/?

getch();?

closegraph();?

return?0;?

}?

函数名:?getdisk?

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

用?法:?int?getdisk(void);?

程序例:?

#include?;?

#include?;?

int?main(void)?

{?

int?disk;?

disk?=?getdisk()?+?'A';?

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

disk);?

return?0;?

}?

函数名:?getdrivername?

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

用?法:?char?*getdrivename(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

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

#include?;?

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

#include?;?

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

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

#include?;?

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函数名:?getlinesettings?

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

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

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

}?

CODE:

[Copy?to?clipboard]

函数名:?getmaxy?

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

用?法:?int?far?getmaxy(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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函数名:?getpass?

功?能:?读一个口令?

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

程序例:?

#include?;?

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

#include?;?

#include?;?

#include?;?

#include?;?

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

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

char?buffer[4096];?

int?main(void)?

{?

int?i;?

clrscr();?

for?(i?=?0;?i?函数名:?gettextinfo?

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

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

程序例:?

#include?;?

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

#include?;?

#include?;?

#include?;?

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

#include?;?

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

#include?;?

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

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

int?looping?=?1;?

int?main(void)?

{?

puts("Press?;;?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?;?

#include?;?

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

#include?;?

#include?;?

#include?;?

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?

功?能:?从流中取一整数?

用?法:?int?getw(FILE?*strem);?

程序例:?

#include?;?

#include?;?

#define?FNAME?"test.$$$"?

int?main(void)?

{?

FILE?*fp;?

int?word;?

/*?place?the?word?in?a?file?*/?

fp?=?fopen(FNAME,?"wb");?

if?(fp?==?NULL)?

{?

printf("Error?opening?file?%s\n",?FNAME);?

exit(1);?

}?

word?=?94;?

putw(word,fp);?

if?(ferror(fp))?

printf("Error?writing?to?file\n");?

else?

printf("Successful?write\n");?

fclose(fp);?

/*?reopen?the?file?*/?

fp?=?fopen(FNAME,?"rb");?

if?(fp?==?NULL)?

{?

printf("Error?opening?file?%s\n",?FNAME);?

exit(1);?

}?

/*?extract?the?word?*/?

word?=?getw(fp);?

if?(ferror(fp))?

printf("Error?reading?file\n");?

else?

printf("Successful?read:?word?=?%d\n",?word);?

/*?clean?up?*/?

fclose(fp);?

unlink(FNAME);?

return?0;?

}?

函数名:?getx?

功?能:?返回当前图形位置的x坐标?

用?法:?int?far?getx(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

int?main(void)?

{?

/*?request?auto?detection?*/?

int?gdriver?=?DETECT,?gmode,?errorcode;?

char?msg[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?*/?

}?

/*?move?to?the?screen?center?point?*/?

moveto(getmaxx()?/?2,?getmaxy()?/?2);?

/*?create?a?message?string?*/?

sprintf(msg,?"函数名:?gety?

功?能:?返回当前图形位置的y坐标?

用?法:?int?far?gety(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

int?main(void)?

{?

/*?request?auto?detection?*/?

int?gdriver?=?DETECT,?gmode,?errorcode;?

char?msg[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?*/?

}?

/*?move?to?the?screen?center?point?*/?

moveto(getmaxx()?/?2,?getmaxy()?/?2);?

/*?create?a?message?string?*/?

sprintf(msg,?"函数名:?gmtime?

功?能:?把日期和时间转换为格林尼治标准时间(GMT)?

用?法:?struct?tm?*gmtime(long?*clock);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

/*?Pacific?Standard?Time?&?Daylight?Savings?*/?

char?*tzstr?=?"TZ=PST8PDT";?

int?main(void)?

{?

time_t?t;?

struct?tm?*gmt,?*area;?

putenv(tzstr);?

tzset();?

t?=?time(NULL);?

area?=?localtime(&t);?

printf("Local?time?is:?%s",?asctime(area));?

gmt?=?gmtime(&t);?

printf("GMT?is:?%s",?asctime(gmt));?

return?0;?

}?

函数名:?gotoxy?

功?能:?在文本窗口中设置光标?

用?法:?void?gotoxy(int?x,?int?y);?

程序例:?

#include?;?

int?main(void)?

{?

clrscr();?

gotoxy(35,?12);?

cprintf("Hello?world");?

getch();?

return?0;?

}?

函数名:?gotoxy?

功?能:?在文本窗口中设置光标?

用?法:?void?gotoxy(int?x,?int?y);?

程序例:?

#include?;?

int?main(void)?

{?

clrscr();?

gotoxy(35,?12);?

cprintf("Hello?world");?

getch();?

return?0;?

}?

函数名:?graphdefaults?

功?能:?将所有图形设置复位为它们的缺省值?

用?法:?void?far?graphdefaults(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

int?main(void)?

{?

/*?request?auto?detection?*/?

int?gdriver?=?DETECT,?gmode,?errorcode;?

int?maxx,?maxy;?

/*?initialize?graphics?and?local?variables?*/?

initgraph(&gdriver,?&gmode,?"c:\\bor\\Borland\\bgi");?

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

/*?output?line?with?non-default?settings?*/?

setlinestyle(DOTTED_LINE,?0,?3);?

line(0,?0,?maxx,?maxy);?

outtextxy(maxx/2,?maxy/3,?"Before?default?values?are?restored.");?

getch();?

/*?restore?default?values?for?everything?*/?

graphdefaults();?

/*?clear?the?screen?*/?

cleardevice();?

/*?output?line?with?default?settings?*/?

line(0,?0,?maxx,?maxy);?

outtextxy(maxx/2,?maxy/3,?"After?restoring?default?values.");?

/*?clean?up?*/?

getch();?

closegraph();?

return?0;?

}?

函数名:?grapherrormsg?

功?能:?返回一个错误信息串的指针?

用?法:?char?*far?grapherrormsg(int?errorcode);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

#define?NONSENSE?-50?

int?main(void)?

{?

/*?FORCE?AN?ERROR?TO?OCCUR?*/?

int?gdriver?=?NONSENSE,?gmode,?errorcode;?

/*?initialize?graphics?mode?*/?

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

/*?read?result?of?initialization?*/?

errorcode?=?graphresult();?

/*?if?an?error?occurred,?then?output?a?*/?

/*?descriptive?error?message.?*/?

if?(errorcode?!=?grOk)?

{?

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

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

getch();?

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

}?

/*?draw?a?line?*/?

line(0,?0,?getmaxx(),?getmaxy());?

/*?clean?up?*/?

getch();?

closegraph();?

return?0;?

}?

函数名:?graphresult?

功?能:?返回最后一次不成功的图形操作的错误代码?

用?法:?int?far?graphresult(void);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

int?main(void)?

{?

/*?request?auto?detection?*/?

int?gdriver?=?DETECT,?gmode,?errorcode;?

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

}?

/*?draw?a?line?*/?

line(0,?0,?getmaxx(),?getmaxy());?

/*?clean?up?*/?

getch();?

closegraph();?

return?0;?

}?

函数名:?_graphfreemem?

功?能:?用户可修改的图形存储区释放函数?

用?法:?void?far?_graphfreemem(void?far?*ptr,?unsigned?size);?

程序例:?

#include?;?

#include?;?

#include?;?

#include?;?

#include?;?

int?main(void)?

{?

/*?request?auto?detection?*/?

int?gdriver?=?DETECT,?gmode,?errorcode;?

int?midx,?midy;?

/*?clear?the?text?screen?*/?

clrscr();?

printf("Press?any?key?to?initialize?graphics?mode:");?

getch();?

clrscr();?

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

/*?display?a?message?*/?

settextjustify(CENTER_TEXT,?CENTER_TEXT);?

outtextxy(midx,?midy,?"Press?any?key?to?exit?graphics?mode:");?

/*?clean?up?*/?

getch();?

closegraph();?

return?0;?

}?

/*?called?by?the?graphics?kernel?to?allocate?memory?*/?

void?far?*?far?_graphgetmem(unsigned?size)?

{?

printf("_graphgetmem?called?to?allocate?%d?bytes.\n",?size);?

printf("hit?any?key:");?

getch();?

printf("\n");?

/*?allocate?memory?from?far?heap?*/?

return?farmalloc(size);?

}?

/*?called?by?the?graphics?kernel?to?free?memory?*/?

void?far?_graphfreemem(void?far?*ptr,?unsigned?size)?

{?

printf("_graphfreemem?called?to?free?%d?bytes.\n",?size);?

printf("hit?any?key:");?

getch();?

printf("\n");?

/*?free?ptr?from?far?heap?*/?

farfree(ptr);?

}

?

CODE:

?

[Copy?to?clipboard]

?

函数名:?harderr??

功??能:?建立一个硬件错误处理程序??

用??法:?void?harderr(int?(*fptr)());??

程序例:??

/*This?program?will?trap?disk?errors?and?prompt??

the?user?for?action.?Try?running?it?with?no??

disk?in?drive?A:?to?invoke?its?functions.*/??

#include?;??

#include?;??

#include?;??

#define?IGNORE??0??

#define?RETRY???1??

#define?ABORT???2??

int?buf[500];??

/*define?the?error?messages?for?trapping?disk?problems*/??

static?char?*err_msg[]?=?{??

????"write?protect",??

????"unknown?unit",??

????"drive?not?ready",??

????"unknown?command",??

????"data?error?(CRC)",??

????"bad?request",??

????"seek?error",??

????"unknown?media?type",??

????"sector?not?found",??

????"printer?out?of?paper",??

????"write?fault",??

????"read?fault",??

????"general?failure",??

????"reserved",??

????"reserved",??

????"invalid?disk?change"??

};??

error_win(char?*msg)??

{??

???int?retval;??

???cputs(msg);??

/*prompt?for?user?to?press?a?key?to?abort,?retry,?ignore*/??

???while(1)??

???{??

???????retval=?getch();??

???????if?(retval?==?'a'?||?retval?==?'A')??

???????{??

????retval?=?ABORT;??

????break;??

???????}??

???????if?(retval?==?'r'?||?retval?==?'R')??

???????{??

????retval?=?RETRY;??

????break;??

???????}??

???????if?(retval?==?'i'?||?retval?==?'I')??

???????{??

???????????retval?=?IGNORE;??

???????????break;??

???????}??

???}??

???return(retval);??

}??

/*pragma?warn?-par?reduces?warnings?which?occur??

due?to?the?non?use?of?the?parameters?errval,??

bp?and?si?to?the?handler.*/??

#pragma?warn?-par??

int?handler(int?errval,int?ax,int?bp,int?si)??

{??

???static?char?msg[80];??

???unsigned?di;??

???int?drive;??

???int?errorno;??

???di=?_DI;??

/*if?this?is?not?a?disk?error?then?it?was??

another?device?having?trouble*/??

???if?(ax?函数名:?hardresume??

功??能:?硬件错误处理函数??

用??法:?void?hardresume(int?rescode);??

程序例:??

???

/*?This?program?will?trap?disk?errors?and?prompt?the?user?for?action.?*/??

/*?Try?running?it?with?no?disk?in?drive?A:?to?invoke?its?functions????*/??

#include?;??

#include?;??

#include?;??

#define?IGNORE??0??

#define?RETRY???1??

#define?ABORT???2??

int?buf[500];??

/*?define?the?error?messages?for?trapping?disk?problems?*/??

static?char?*err_msg[]?=?{??

????"write?protect",??

????"unknown?unit",??

????"drive?not?ready",??

????"unknown?command",??

????"data?error?(CRC)",??

????"bad?request",??

????"seek?error",??

????"unknown?media?type",??

????"sector?not?found",??

????"printer?out?of?paper",??

????"write?fault",??

????"read?fault",??

????"general?failure",??

????"reserved",??

????"reserved",??

????"invalid?disk?change"??

};??

error_win(char?*msg)??

{??

???int?retval;??

???cputs(msg);??

/*?prompt?for?user?to?press?a?key?to?abort,?retry,?ignore?*/??

???while(1)??

???{??

???????retval=?getch();??

???????if?(retval?==?'a'?||?retval?==?'A')??

???????{??

???????????retval?=?ABORT;??

???????????break;??

???????}??

???????if?(retval?==?'r'?||?retval?==?'R')??

???????{??

???????????retval?=?RETRY;??

???????????break;??

???????}??

???????if?(retval?==?'i'?||?retval?==?'I')??

???????{??

???????????retval?=?IGNORE;??

???????????break;??

???????}??

???}??

???return(retval);??

}??

/*?pragma?warn?-par?reduces?warnings?which?occur?due?to?the?non?use?*/??

/*?of?the?parameters?errval,?bp?and?si?to?the?handler.??????????????*/??

#pragma?warn?-par??

int?handler(int?errval,int?ax,int?bp,int?si)??

{??

???static?char?msg[80];??

???unsigned?di;??

???int?drive;??

???int?errorno;??

???di=?_DI;??

/*?if?this?is?not?a?disk?error?then?it?was?another?device?having?trouble?*/??

???if?(ax?函数名:?highvideo??

功??能:?选择高亮度文本字符??

用??法:?void?highvideo(void);??

程序例:??

#include?;??

int?main(void)??

{??

???clrscr();??

???lowvideo();??

???cprintf("Low?Intensity?text\r\n");??

???highvideo();??

???gotoxy(1,2);??

???cprintf("High?Intensity?Text\r\n");??

???return?0;??

} ?

读书人网 >C语言

热点推荐