博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言库函数大全及应用实例五
阅读量:5086 次
发布时间:2019-06-13

本文共 12050 字,大约阅读时间需要 40 分钟。

原文:

                                               

函数名: getcurdir
功 能: 取指定驱动器的当前目录
用 法: int getcurdir(int drive, char *direc);
程序例: <?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"?>

#i nclude

#i nclude
#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

int main(void)

{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int i;

/* structure for returning palette copy */

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

/* initialize graphics and local variables */

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

/* read result of initialization */

errorcode = graphresult();
/* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
/* terminate with an error code */
exit(1);
}

setcolor(getmaxcolor());

/* return a pointer to the default palette */

pal = getdefaultpalette();

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

{
printf("colors[%d] = %d\n", i,
pal->colors[i]);
getch();
}

/* clean up */

getch();
closegraph();
return 0;
}

函数名: getdisk

功 能: 取当前磁盘驱动器号
用 法: int getdisk(void);
程序例:

#i nclude

#i nclude

int main(void)

{
int disk;

disk = getdisk() + 'A';

printf("The current drive is: %c\n",
disk);
return 0;
}

函数名: getdrivername

功 能: 返回指向包含当前图形驱动程序名字的字符串指针
用 法: char *getdrivename(void);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

/ 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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

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);
程序例:

#i nclude

#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude

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);
程序例:

#i nclude

#i nclude
#i nclude
#i nclude
#i nclude

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

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

int maxx, maxy;

int main(void)

{
int gdriver=DETECT, gmode, errorcode;
void far *ptr[4];

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

initgraph(&gdriver, &gmode, "");
errorcode = graphresult(); /* check for any errors */
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
maxx = getmaxx();
maxy = getmaxy();

/* draw an image on the screen */

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

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

getch(); /* pause screen */
cleardevice(); /* clear screen */
restore_screen(ptr); /* restore the screen */
getch(); /* pause screen */

closegraph();

return 0;
}

void save_screen(void far *buf[4])

{
unsigned size;
int ystart=0, yend, yincr, block;

yincr = (maxy+1) / 4;

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

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

{
if ((buf[block] = farmalloc(size)) == NULL)
{
closegraph();
printf("Error: not enough heap space in save_screen().\n");
exit(1);
}

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

ystart = yend + 1;
yend += yincr + 1;
}
}

void save_screen(void far *buf[4])

{
unsigned size;
int ystart=0, yend, yincr, block;

yincr = (maxy+1) / 4;

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

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

{
if ((buf[block] = farmalloc(size)) == NULL)
{
closegraph();
printf("Error: not enough heap space in save_screen().\n");
exit(1);
}

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

ystart = yend + 1;
yend += yincr + 1;
}
}

void restore_screen(void far *buf[4])

{
int ystart=0, yend, yincr, block;

yincr = (maxy+1) / 4;

yend = yincr;

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

{
putimage(0, ystart, buf[block], COPY_PUT);
farfree(buf[block]);
ystart = yend + 1;
yend += yincr + 1;
}
}

posted on
2014-12-12 08:30 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/4158955.html

你可能感兴趣的文章
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>