当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: Turbo C 2.0、Borland C++库函数及用例
 

 

    摘要: 下载地址:http://www.facesun.cn/portal/download/aspprotect.rar软件原始设计目标:软件目标: 监控指定文件夹,如果文件夹中出现含有恶意代码的asp或者其他的文件, 将其转移到一个不能使用web浏览的文件夹进行隔离,或者可定义为直接删除. 对于每个可疑文件进行过滤 可定义监视控制级别. 可以自动将操作情况写入数据库文件,与相关的web页面连接报告......
 ·最佳的数据库分页方法     »显示摘要«
    摘要:一:一个老生常谈的问题。    我们知道,记录集分页是数据库处理中十分常见的问题。而当我们设计到网络数据库,就是说要考虑传输带宽问题时,分页问题就每每困扰着每一个数据库程序设计人员。二:分页问题的解决方案汇总    说起解决的方案,每个数据库设计人员可能都会举出许多方法。但细分后,可以归为三类。一:ado纪录集分页、二:专储记录集分页、三、数据库游标分页。 一:著名的ado纪录集分页。     说......


Turbo C 2.0、Borland C++库函数及用例

                    turbo c 2.0.borland c++库函数及用例

【程序编程相关:SQLITE3 在VC/MFC 中使用的

字母a开头函数函数名: abort 【推荐阅读:避免使用者创建最上层的公用文件夹

【扩展信息:C语言中的时间函数及使用实例

功 能: 异常终止一个进程

用 法: void abort(void);

程序例:

#include <stdio.h>

#include <stdlib.h>int main(void)

{

printf("calling abort()\n");

abort();

return 0; /* this is never reached */

}

函数名: abs

功 能: 求整数的绝对值

用 法: int abs(int i);

程序例:

#include <stdio.h>

#include <math.h>int main(void)

{

int number = -1234; printf("number:%d absolute value:%d\n",number,abs(number));

return 0;

}

函数名: absread

功 能: 绝对磁盘扇区读数据

用 法: int absread( int drive, int nsects, int sectno,

void *buffer );

程序例:

/* absread example */

#include <stdio.h>

#include <conio.h>

#include <process.h>

#include <dos.h>int main(void)

{

int i, strt, ch_out, sector;

char buf[512]; printf("insert diskette into drive a press any key\n");

getch();

sector = 0;

if (absread(0, 1, sector, &buf) != 0)

{ perror("disk problem");

exit(1); }

printf("read ok\n");

strt = 3;

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

{ ch_out = buf[strt+i];

putchar(ch_out); }

printf("\n");

return(0); }

函数名: abswrite

功 能: 绝对磁盘扇区写数据

用 法: int abswrite( int drive, int nsects, in tsectno,

void *buffer);

程序例:

/* abswrite example */

#include <stdio.h>

#include <conio.h>

#include <process.h>

#include <dos.h>int main(void)

{ int i, strt, ch_out, sector;

char buf[512]; printf("insert diskette into drive a press any key\n");

getch();

sector = 0;

if (absread(0, 1, sector, &buf) != 0)

{ perror("disk problem");

exit(1); }

printf("read ok\n");

strt = 3;

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

{ ch_out = buf[strt+i];

putchar(ch_out); }

printf("\n");

return(0);}

函数名: access

功 能: 确定文件的访问权限

用 法: int access(const char *filename, int amode);

程序例:

#include <stdio.h>

#include <io.h>int file_exists(char *filename);

int main(void)

{ printf("does notexist.fil exist: %s\n",

file_exists("notexists.fil") ? "yes" : "no");

return 0;

}int file_exists(char *filename)

{

return (access(filename, 0) == 0);

}

函数名: acos

功 能: 反余弦函数

用 法: double acos(double x);

程序例:

#include <stdio.h>

#include <math.h>int main(void)

{ double result;

double x = 0.5;

result = acos(x);

printf("the arc cosine of %lf is %lf\n", x, result);

return 0;}

函数名: allocmem

功 能: 分配dos存储段

用 法: int allocmem(unsigned size, unsigned *seg);

程序例:

#include <dos.h>

#include <alloc.h>

#include <stdio.h>int main(void)

{

unsigned int size, segp;

int stat;

size = 64; /* (64 x 16) = 1024 bytes */

stat = allocmem(size, &segp); if (stat == -1)

printf("allocated memory at segment: %x\n", segp);

else

printf("failed: maximum number of paragraphs available\

is %u\n", stat);

return 0;

}

函数名: arc

功 能: 画一弧线

用 法: void far arc( int x,int y,int stangle,int endangle,

int radius );

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{ /* request auto detection */

int gdriver = detect, gmode, errorcode;

int midx, midy; int stangle = 45, endangle = 135;

int radius = 100;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, ""); /* read result of initialization */

errorcode = graphresult(); /* an error occurred */

if (errorcode != grok)

{

printf("graph err: %s\n", grapherrormsg(errorcode));

printf("press any key to halt:");

getch();

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

} midx = getmaxx() / 2;

midy = getmaxy() / 2;

setcolor(getmaxcolor()); /* draw arc */

arc(midx, midy, stangle, endangle, radius); /* clean up */

getch();

closegraph();

return 0;

}

函数名: asctime

功 能: 转换日期与时间为ascii码

用 法: char *asctime(const struct tm *tblock);

程序例:

#include <stdio.h>

#include <string.h>

#include <time.h>int main(void)

{

struct tm t;

char str[80]; /* sample loading of tm structure */

t.tm_sec = 1; /* seconds */

t.tm_min = 30; /* minutes */

t.tm_hour = 9; /* hour */

t.tm_mday = 22; /* day of the month */

t.tm_mon = 11; /* month */

t.tm_year = 56; /* year - does not include century */

t.tm_wday = 4; /* day of the week */

t.tm_yday = 0; /* does not show in asctime */

t.tm_isdst = 0;

/* is daylight savtime; does not show in asctime */

/* converts structure to null terminated

string */ strcpy(str, asctime(&t));

printf("%s\n", str);

return 0;

}

函数名: asin

功 能: 反正弦函数

用 法: double asin(double x);

程序例:

#include <stdio.h>

#include <math.h>int main(void)

{ double result;

double x = 0.5;

result = asin(x);

printf("the arc sin of %lf is %lf\n", x, result);

return(0);

}

函数名: assert

功 能: 测试一个条件并可能使程序终止

用 法: void assert(int test);

程序例:

#include <assert.h>

#include <stdio.h>

#include <stdlib.h>struct item {

int key;

int value;

};/* add item to list, make sure list is not null */

void additem(struct item *itemptr) {

assert(itemptr != null);

}int main(void)

{

additem(null);

return 0;

}

函数名: atan

功 能: 反正切函数

用 法: double atan(double x);

程序例:

#include <stdio.h>

#include <math.h>

int main(void)

{ double result;

double x = 0.5;

result = atan(x);

printf("the arc tangent of %lf is %lf\n", x, result);

return(0);

}

函数名: atan2

功 能: 计算y/x的反正切值

用 法: double atan2(double y, double x);

程序例:

#include <stdio.h>

#include <math.h>int main(void)

{ double result;

double x = 90.0, y = 45.0;

result = atan2(y, x);

printf("the arc tangent ratio of %lf is %lf\n\

", (y/x),result);

return 0;

}

函数名: atexit

功 能: 注册终止函数

用 法: int atexit(atexit_t func);

程序例:

#include <stdio.h>

#include <stdlib.h>void exit_fn1(void)

{ printf("exit function #1 called\n");

}void exit_fn2(void)

{ printf("exit function #2 called\n");

}int main(void)

{

/* post exit function #1 */

atexit(exit_fn1);

/* post exit function #2 */

atexit(exit_fn2);

return 0;

}

函数名: atof

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

用 法: double atof(const char *nptr);

程序例:#include <stdlib.h>

#include <stdio.h>

int main(void)

{ float f;

char *str = "12345.67";

f = atof(str); printf("string = %s float = %f\n", str, f);

return 0;}

函数名: atoi

功 能: 把字符串转换成长整型数

用 法: int atoi(const char *nptr);

程序例:

#include <stdlib.h>

#include <stdio.h>int main(void)

{ int n;

char *str = "12345.67";

n = atoi(str);

printf("string = %s integer = %d\n", str, n);

return 0;

}

函数名: atol

功 能: 把字符串转换成长整型数

用 法: long atol(const char *nptr);

程序例:

#include <stdlib.h>

#include <stdio.h>int main(void)

{ long l;

char *str = "98765432";

l = atol(lstr);

printf("string = %s integer = %ld\n", str, l);

return(0);

}字母b开头函数

函数名: bar

功 能: 画一个二维条形图

用 法: void far bar(int left,int top,int right,int bottom);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */

int gdriver = detect, gmode, errorcode;

int midx, midy, i; /* initialize graphics and local variables */

initgraph(&gdriver, &gmode, ""); /* read result of initialization */

errorcode = graphresult();

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

{

printf("graph err: %s\n", grapherrormsg(errorcode));

printf("press any key to halt:");

getch();

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

}

midx = getmaxx() / 2;

midy = getmaxy() / 2; /* loop through the fill patterns */

for (i=solid_fill; i<user_fill; i++)

{

/* set the fill style */

setfillstyle(i, getmaxcolor()); /* draw the bar */

bar(midx-50, midy-50, midx+50,

midy+50);

getch();

}

closegraph();

return 0;

}

函数名: bar3d

功 能: 画一个三维条形图

用 法: void far bar3d( int left, int top, int right,

int bottom, int depth,

int topflag);

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{ /* request auto detection */

int gdriver = detect, gmode, errorcode;

int midx, midy, i; /* initialize graphics, local variables */

initgraph(&gdriver, &gmode, ""); /* read result of initialization */

errorcode = graphresult();

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

{

printf("graph err: %s\n", grapherrormsg(errorcode));

printf("press any key to halt:");

getch();

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

} midx = getmaxx() / 2;

midy = getmaxy() / 2;

/* loop through the fill patterns */

for (i=empty_fill; i<user_fill; i++)

{

/* set the fill style */

setfillstyle(i, getmaxcolor());

/* draw the 3-d bar */

bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);

getch(); }

/* clean up */

closegraph();

return 0;

}

函数名: bdos

功 能: dos系统调用

用 法: int bdos(int dosfun,unsigned dosdx,unsigned dosal);

程序例:#include <stdio.h>

#include <dos.h>/* get current drive as ´a´, ´b´, ... */

char current_drive(void)

{

char curdrive; /* get current disk as 0, 1, ... */

curdrive = bdos(0x19, 0, 0);

return(´a´ + curdrive);

}int main(void)

{

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

return 0;

}

函数名: bdosptr

功 能: dos系统调用

用 法: int bdosptr( int dosfun, void *argument,

unsigned dosal );

程序例:#include <string.h>

#include <stdio.h>

#include <dir.h>

#include <dos.h>

#include <errno.h>

#include <stdlib.h>#define buflen 80int main(void)

{

char buffer[buflen];

int test; printf("enter full pathname of a directory\n");

gets(buffer); test = bdosptr(0x3b,buffer,0);

if(test)

{ printf("dos error message: %d\n", errno);

/* see errno.h for error listings */

exit (1);

} getcwd(buffer, buflen);

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

}

函数名: bioscom

功 能: 串行i/o通信

用 法: int bioscom(int cmd, char abyte, int port);

程序例:

#include <bios.h>

#include <conio.h>#define com1 0

#define data_ready 0x100

#define true 1

#define false 0#define settings ( 0x80 | 0x02 | 0x00 | 0x00)int main(void)

{

int in, out, status, done = false; bioscom(0, settings, com1);

cprintf("... bioscom [esc] to exit ...\n");

while (!done)

{

status = bioscom(3, 0, com1);

if (status & data_ready)

if ((out = bioscom(2, 0, com1) & 0x7f) != 0)

putch(out); if (kbhit())

{

if ((in = getch()) == ´\x1b´)

done = true;

bioscom(1, in, com1);

}

}

return 0;

}

函数名: biosdisk

功 能: 软硬盘i/o

用 法: int biosdisk( int cmd,int drive,int head,int track,

int sector,int nsects, void *buffer);

程序例:#include <bios.h>

#include <stdio.h>int main(void)

{

int result;

char buffer[512]; printf("testing to see if drive a: is ready\n");

result = biosdisk(4,0,0,0,0,1,buffer);

result &= 0x02;

(result) ? (printf("drive a: ready\n")) :

(printf("drive a: not ready\n"));

return 0;

}

函数名: biosequip

功 能: 检查设备

用 法: int biosequip(void);

程序例:#include <bios.h>

#include <stdio.h>int main(void)

{

int result;

char buffer[512]; printf("testing to see if drive a: is ready\n");

result = biosdisk(4,0,0,0,0,1,buffer);

result &= 0x02;

(result) ? (printf("drive a: ready\n")) :

(printf("drive a: not ready\n")); return 0;

}

函数名: bioskey

功 能: 直接使用bios服务的键盘接口

用 法: int bioskey(int cmd);

程序例:#include <stdio.h>

#include <bios.h>

#include <ctype.h>#define right 0x01

#define left 0x02

#define ctrl 0x04

#define alt 0x08int main(void)

{

int key, modifiers; /* function 1 returns 0 until a key is pressed */

while (bioskey(1) == 0); /* function 0 returns the key that is waiting */

key = bioskey(0); /* use function 2 to determine if shift keys were used */

modifiers = bioskey(2); if (modifiers)

{

printf("[");

if (modifiers & right) printf("right");

if (modifiers & left) printf("left");

if (modifiers & ctrl) printf("ctrl");

if (modifiers & alt) printf("alt");

printf("]");

}

/* print out the character read */

if (isalnum(key & 0xff))

printf("´%c´\n", key);

else printf("%#02x\n", key);

return 0;

}

函数名: biosmemory

功 能: 返回存储块大小

用 法:int biosmemory(void);

程序例:

#include <stdio.h>

#include <bios.h>

int main(void)

{

int memory_size;

memory_size = biosmemory();

/* returns value up to 640k */

printf("ram size = %dk\n",memory_size);

return 0;

}

函数名: biosprint

功 能: 直接使用bios服务的打印机i/o

用 法: int biosprint(int cmd, int byte, int port);

程序例:

#include <stdio.h>

#include <conio.h>

#include <bios.h>int main(void)

{

#define status 2 /* printer status command */

#define portnum 0 /* port number for lpt1 */ int status, abyte=0; printf("please turn off your printer.\

press any key to continue\n");

getch();

status = biosprint(status, abyte, portnum);

if (status & 0x01)

printf("device time out.\n");

if (status & 0x08)

printf("i/o error.\n"); if (status & 0x10)

printf("selected.\n");

if (status & 0x20)

printf("out of paper.\n"); if (status & 0x40)

printf("acknowledge.\n");

if (status & 0x80)

printf("not busy.\n"); return 0;

}

函数名: biostime

功 能: 读取或设置bios时间

用 法: long biostime(int cmd, long newtime);

程序例:#include <stdio.h>

#include <bios.h>

#include <time.h>

#include <conio.h>int main(void)

{

long bios_time;

clrscr(); cprintf("the number of clock ticks since midnight\

is:\r\n");

cprintf("the number of seconds since midnight is:\r\n");

cprintf("the number of minutes since midnight is:\r\n");

cprintf("the number of hours since midnight is:\r\n");

cprintf("\r\npress any key to quit:");

while(!kbhit())

{

bios_time = biostime(0, 0l); gotoxy(50, 1);

cprintf("%lu", bios_time); gotoxy(50, 2);

cprintf("%.4f", bios_time / clk_tck); gotoxy(50, 3);

cprintf("%.4f", bios_time / clk_tck / 60); gotoxy(50, 4);

cprintf("%.4f", bios_time / clk_tck / 3600);

}

return 0;

}

函数名: brk

功 能: 改变数据段空间分配

用 法: int brk(void *endds);

程序例:#include <stdio.h>

#include <alloc.h>int main(void)

{

char *ptr; printf("changing allocation with brk()\n");

ptr = malloc(1); printf("before brk() call:%lu bytes free\n",coreleft());

brk(ptr+1000);

printf(" after brk() call:%lu bytes free\n",coreleft());

return 0;

}

函数名: bsearch

功 能: 二分法搜索

用 法: void *bsearch( const void *key, const void *base,

size_t *nelem, size_t width,

int(*fcmp)(const void *, const *));

程序例:

#include <stdlib.h>

#include <stdio.h>

#define nelems(arr) (sizeof(arr) / sizeof(arr[0]))

int numarray[] = {123, 145, 512, 627, 800, 933};

int numeric (const int *p1, const int *p2)

{

return(*p1 - *p2);

}int lookup(int key)

{

int *itemptr; /* the cast of (int(*)(const void *,const void*))

is needed to avoid a type mismatch error at

compile time */

itemptr = bsearch (&key, numarray, nelems(numarray),

sizeof(int), (int(*)(const void *,const void *))numeric);

return (itemptr != null);

}int main(void)

{

if (lookup(512))

printf("512 is in the table.\n");

else

printf("512 isn´t in the table.\n"); return 0;

}字母c开头函数

函数名: cabs

功 能: 计算复数的绝对值

用 法: double cabs(struct complex z);

程序例:

#include <stdio.h>

#include <math.h>

int main(void)

{

struct complex z;

double val;

z.x = 2.0;

z.y = 1.0;

val = cabs(z); printf("the absolute value of %.2lfi %.2lfj is %.2lf\

", z.x, z.y, val);

return 0;

}

函数名: calloc

功 能: 分配主存储器

用 法: void *calloc(size_t nelem, size_t elsize);

程序例:#include <stdio.h>

#include <alloc.h>int main(void)

{

char *str = null;

/* allocate memory for string */

str = calloc(10, sizeof(char));

/* copy "hello" into string */ strcpy(str, "hello");

/* display string */

printf("string is %s\n", str);

/* free memory */

free(str);

return 0;

}

函数名: ceil

功 能: 向上舍入

用 法: double ceil(double x);

程序例:#include <math.h>

#include <stdio.h>int main(void)

{

double number = 123.54;

double down, up; down = floor(number); up = ceil(number); printf("original number %5.2lf\n", number);

printf("number rounded down %5.2lf\n", down);

printf("number rounded up %5.2lf\n", up); return 0;

}

函数名: cgets

功 能: 从控制台读字符串

用 法: char *cgets(char *str);

程序例:#include <stdio.h>

#include <conio.h>int main(void)

{

char buffer[83];

char *p;

/* there´s space for 80 characters plus the null \

terminator */ buffer[0] = 81; printf("input some chars:");

p = cgets(buffer);

printf("\ncgets read %d characters: \"%s\"\n\

", buffer[1], p);

printf("the returned pointer is %p, buffer[0] is at %p\n\

", p, &buffer);

/* leave room for 5 characters plus the null terminator */

buffer[0] = 6; printf("input some chars:");

p = cgets(buffer);

printf("\ncgets read %d characters: \"%s\"\n\

", buffer[1], p); printf("the returned pointer is %p, buffer[0] is at %p\n\

", p, &buffer);

return 0;

}

函数名: chdir

功 能: 改变工作目录

用 法: int chdir(const char *path);

程序例:#include <stdio.h>

#include <stdlib.h>

#include <dir.h>char old_dir[maxdir];

char new_dir[maxdir];int main(void)

{

if (getcurdir(0, old_dir))

{ perror("getcurdir()");

exit(1);

}

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

if (chdir("\\"))

{ perror("chdir()");

exit(1);

}

if (getcurdir(0, new_dir))

{ perror("getcurdir()");

exit(1);

} printf("current directory is now: \\%s\n", new_dir); printf("\nchanging back to orignal directory: \\%s\n\

", old_dir);

if (chdir(old_dir))

{ perror("chdir()");

exit(1);

}

return 0;

}

函数名: _chmod, chmod

功 能: 改变文件的访问方式

用 法: int chmod(const char *filename, int permiss);

程序例:#include <sys\stat.h>

#include <stdio.h>

#include <io.h>void make_read_only(char *filename);int main(void)

{ make_read_only("notexist.fil");

make_read_only("myfile.fil"); return 0;

}void make_read_only(char *filename)

{ int stat;

stat = chmod(filename, s_iread);

if (stat)

printf("couldn´t make %s read-only\n", filename);

else

printf("made %s read-only\n", filename);

}

函数名: chsize

功 能: 改变文件大小

用 法: int chsize(int handle, long size);

程序例:#include <string.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

int handle;

char buf[11] = "0123456789";

/* create text file containing 10 bytes */

handle = open("dummy.fil", o_creat);

write(handle, buf, strlen(buf)); /* truncate the file to 5 bytes in size */

chsize(handle, 5); /* close the file */

close(handle);

return 0;}

函数名: circle

功 能: 在给定半径以(x, y)为圆心画圆

用 法: void far circle(int x, int y, int radius);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */

int gdriver = detect, gmode, errorcode; int midx, midy;

int radius = 100; /* 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;

setcolor(getmaxcolor()); /* draw the circle */

circle(midx, midy, radius); /* clean up */

getch();

closegraph();

return 0;

}

函数名: cleardevice

功 能: 清除图形屏幕

用 法: void far cleardevice(void);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */

int gdriver = detect, gmode, errorcode; int midx, midy; /* 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;

setcolor(getmaxcolor()); /* for centering screen messages */

settextjustify(center_text, center_text); /* output a message to the screen */

outtextxy(midx,midy,"press any key to clear the screen:"); /* wait for a key */

getch(); /* clear the screen */

cleardevice(); /* output another message */

outtextxy(midx, midy, "press any key to quit:"); /* clean up */

getch();

closegraph();

return 0;

}

函数名: clearerr

功 能: 复位错误标志

用 法:void clearerr(file *stream);

程序例:#include <stdio.h>int main(void)

{

file *fp;

char ch; /* open a file for writing */

fp = fopen("dummy.fil", "w"); /* force an error condition by attempting to read */

ch = fgetc(fp);

printf("%c\n",ch); if (ferror(fp))

{

/* display an error message */

printf("error reading from dummy.fil\n"); /* reset the error and eof indicators */

clearerr(fp);

} fclose(fp);

return 0;

}

函数名: clearviewport

功 能: 清除图形视区

用 法: void far clearviewport(void);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>#define clip_on 1 /* activates clipping in viewport */int main(void)

{ /* request auto detection */

int gdriver = detect, gmode, errorcode;

int ht; /* 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 */

} setcolor(getmaxcolor());

ht = textheight("w"); /* message in default full-screen viewport */

outtextxy(0, 0, "* <-- (0, 0) in default viewport"); /* create a smaller viewport */

setviewport(50, 50, getmaxx()-50, getmaxy()-50, clip_on);

/* display some messages */

outtextxy(0, 0, "* <-- (0, 0) in smaller viewport");

outtextxy(0, 2*ht, "press any key to clear viewport:"); /* wait for a key */

getch(); /* clear the viewport */

clearviewport(); /* output another message */

outtextxy(0, 0, "press any key to quit:"); /* clean up */ getch();

closegraph();

return 0;

}

函数名: _close, close

功 能: 关闭文件句柄

用 法: int close(int handle);

程序例:#include <string.h>

#include <stdio.h>

#include <fcntl.h>

#include <io.h>main()

{

int handle;

char buf[11] = "0123456789"; /* create a file containing 10 bytes */

handle = open("new.fil", o_creat);

if (handle > -1)

{

write(handle, buf, strlen(buf)); /* close the file */

close(handle);

}

else

{

printf("error opening file\n");

} return 0;

}

函数名: clock

功 能: 确定处理器时间

用 法: clock_t clock(void);

程序例:#include <time.h>

#include <stdio.h>

#include <dos.h>int main(void)

{

clock_t start, end;

start = clock();

delay(2000); end = clock();

printf("the time was: %f\n", (end - start) / clk_tck); return 0;

}

函数名: closegraph

功 能: 关闭图形系统

用 法: void far closegraph(void);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */

int gdriver = detect, gmode, errorcode; int x, y; /* initialize graphics mode */

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

}

x = getmaxx() / 2;

y = getmaxy() / 2; /* output a message */

settextjustify(center_text, center_text);

outtextxy(x, y, "press a key to close the graphics \

system:"); /* wait for a key */

getch();

/* closes down the graphics system */

closegraph(); printf("we´re now back in text mode.\n");

printf("press any key to halt:");

getch();

return 0;

}

函数名: clreol

功 能: 在文本窗口中清除字符到行末

用 法: void clreol(void);

程序例:#include <conio.h>int main(void)

{

clrscr();

cprintf("the function clreol clears all characters from\

the\r\n");

cprintf("cursor position to the end of the line within\

the\r\n"); cprintf("current text window, without moving the cursor.\

\r\n");

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

gotoxy(14, 4);

getch();

clreol();

getch();

return 0;

}

函数名: clrscr

功 能: 清除文本模式窗口

用 法: void clrscr(void);

程序例:

#include <conio.h>int main(void)

{

int i;

clrscr();

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

cprintf("%d\r\n", i);

cprintf("\r\npress any key to clear screen");

getch(); clrscr();

cprintf("the screen has been cleared!");

getch();

return 0;

}

函数名: coreleft

功 能: 返回未使用内存的大小

用 法: unsigned coreleft(void);

程序例:

#include <stdio.h>

#include <alloc.h>int main(void)

{

printf("the difference between the highest allocated \

block and\n");

printf("the top of the heap is: %lu bytes\n\

", (unsigned long) coreleft());

return 0;

}

函数名: cos

功 能: 余弦函数

用 法: double cos(double x);

程序例:#include <stdio.h>

#include <math.h>int main(void)

{

double result;

double x = 0.5; result = cos(x); printf("the cosine of %lf is %lf\n", x, result);

return 0;

}

函数名: cosh

功 能: 双曲余弦函数

用 法: dluble cosh(double x);

程序例:#include <stdio.h>

#include <math.h>int main(void)

{

double result;

double x = 0.5; result = cosh(x); printf("the hyperboic cosine of %lf is %lf\n",x,result);

return 0;

}

函数名: country

功 能: 返回与国家有关的信息

用 法: struct country *country( int countrycode,

struct country *country);

程序例:#include <dos.h>

#include <stdio.h>#define usa 0int main(void)

{

struct country country_info; country(usa, &country_info);

printf("the currency symbol for the usa is: %s\n",

country_info.co_curr);

return 0;

}

函数名: cprintf

功 能: 送格式化输出至屏幕

用 法: int cprintf(const char *format[, argument, ...]);

程序例:#include <conio.h>int main(void)

{

/* clear the screen */

clrscr(); /* create a text window */

window(10, 10, 80, 25); /* output some text in the window */

cprintf("hello world\r\n"); /* wait for a key */

getch();

return 0;

}

函数名: cputs

功 能: 写字符到屏幕

用 法: void cputs(const char *string);

程序例:#include <conio.h>int main(void)

{

/* clear the screen */

clrscr(); /* create a text window */

window(10, 10, 80, 25); /* output some text in the window */

cputs("this is within the window\r\n"); /* wait for a key */

getch();

return 0;

}

函数名: _creat, creat

功 能: 创建一个新文件或重写一个已存在的文件

用 法: int creat (const char *filename, int permiss);

程序例:#include <sys\stat.h>

#include <string.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

int handle;

char buf[11] = "0123456789"; /* change the default file mode from text to binary */

_fmode = o_binary; /* create a binary file for reading and writing */

handle = creat("dummy.fil", s_iread | s_iwrite); /* write 10 bytes to the file */

write(handle, buf, strlen(buf)); /* close the file */

close(handle);

return 0;

}

函数名: creatnew

功 能: 创建一个新文件

用 法: int creatnew(const char *filename, int attrib);

程序例:#include <string.h>

#include <stdio.h>

#include <errno.h>

#include <dos.h>

#include <io.h>int main(void)

{

int handle; char buf[11] = "0123456789"; /* attempt to create a file that doesn´t already exist */

handle = creatnew("dummy.fil", 0); if (handle == -1)

printf("dummy.fil already exists.\n");

else

{

printf("dummy.fil successfully created.\n");

write(handle, buf, strlen(buf));

close(handle);

} return 0;

}

函数名: creattemp

功 能: 创建一个新文件或重写一个已存在的文件

用 法: int creattemp(const char *filename, int attrib);

程序例:#include <string.h>

#include <stdio.h>

#include <io.h>int main(void)

{

int handle;

char pathname[128];

strcpy(pathname, "\\");

/* create a unique file in the root directory */

handle = creattemp(pathname, 0);

printf("%s was the unique file created.\n", pathname);

close(handle);

return 0;

}

函数名: cscanf

功 能: 从控制台执行格式化输入

用 法: int cscanf(char *format[,argument, ...]);

程序例:#include <conio.h>int main(void)

{

char string[80]; /* clear the screen */

clrscr();

/* prompt the user for input */

cprintf("enter a string with no spaces:"); /* read the input */

cscanf("%s", string); /* display what was read */

cprintf("\r\nthe string entered is: %s", string);

return 0;

}

函数名: ctime

功 能: 把日期与时间转换为字符串

用 法: char *ctime(const time_t *time);

程序例:#include <stdio.h>

#include <time.h>int main(void)

{

time_t t; time(&t);

printf("today´s date and time: %s\n", ctime(&t)); return 0;

}

函数名: ctrlbrk

功 能: 设置ctrl-break处理程序

用 法: void ctrlbrk(*fptr)(void);

程序例:#include <stdio.h>

#include <dos.h>#define abort 0int c_break(void)

{

printf("control-break pressed. program aborting ...\n");

return (abort);}

int main(void)

{

ctrlbrk(c_break);

for(;;)

{ printf("looping... press <ctrl-break> to quit:\n");

}

return 0;

}字母d开头函数

函数名: delay

功 能: 将程序的执行暂停一段时间(毫秒)

用 法: void delay(unsigned milliseconds);

程序例:

/* emits a 440-hz tone for 500 milliseconds */

#include <dos.h>int main(void)

{

sound(440);

delay(500);

nosound();

return 0;

}

函数名: delline

功 能: 在文本窗口中删去一行

用 法: void delline(void);

程序例:#include <conio.h>int main(void)

{

clrscr();

cprintf("the function delline deletes \

the line containing the\r\n");

cprintf("cursor and moves all lines \

below it one line up.\r\n"); cprintf("delline operates within the \

currently active text\r\n");

cprintf("window. press any key to \

continue . . .");

gotoxy(1,2); /* move the cursor to the

second line and first column */

getch();

delline();

getch(); return 0;

}

函数名: detectgraph

功 能: 通过检测硬件确定图形驱动程序与模式

用 法: void far detectgraph( int far *graphdriver,

int far *graphmode);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>/* names of the various cards supported */

char *dname[] = { "requests detection",

"a cga", "an mcga",

"an ega",

"a 64k ega",

"a monochrome ega",

"an ibm 8514",

"a hercules monochrome",

"an at&t 6300 pc",

"a vga",

"an ibm 3270 pc"

};int main(void)

{

/* returns detected hardware info. */ int gdriver, gmode, errorcode; /* detect graphics hardware available */

detectgraph(&gdriver, &gmode); /* read result of detectgraph call */

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

} /* display the information detected */

clrscr();

printf("you have %s video display \

card.\n", dname[gdriver]);

printf("press any key to halt:");

getch();

return 0;

}

函数名: difftime

功 能: 计算两个时刻之间的时间差

用 法: double difftime(time_t time2, time_t time1);

程序例:#include <time.h>

#include <stdio.h>

#include <dos.h>

#include <conio.h>int main(void)

{

time_t first, second;

clrscr();

first = time(null); /* gets system time */ delay(2000); /* waits 2 secs */

second = time(null); /* gets system time

again */

printf("the difference is: %f \

seconds\n",difftime(second,first));

getch();

return 0;

}

函数名: disable

功 能: 屏蔽中断

用 法: void disable(void);

程序例:/***note: this is an interrupt service

routine. you cannot compile this program

with test stack overflow turned on and

get an executable file that operates

correctly. */#include <stdio.h>

#include <dos.h>

#include <conio.h>#define intr 0x1c /* the clock tick interrupt */void interrupt ( *oldhandler)(void);int count=0;void interrupt handler(void)

{

/* disable interrupts during the handling of

the interrupt */

disable();

/* increase the global counter */

count++;/* reenable interrupts at the end of the

handler */

enable();

/* call the old routine */

oldhandler();

}int main(void)

{

/* save the old interrupt vector */

oldhandler = getvect(intr);/* install the new interrupt handler */

setvect(intr, handler);/* loop until the counter exceeds 20 */

while (count < 20)

printf("count is %d\n",count);/* reset the old interrupt handler */

setvect(intr, oldhandler); return 0;

}

函数名: div

功 能: 将两个整数相除, 返回商与余数

用 法: div_t (int number, int denom);

程序例:

#include <stdlib.h>

#include <stdio.h>

div_t x;int main(void)

{

x = div(10,3);

printf("10 div 3 = %d remainder %d\n", x.quot, x.rem);

return 0;

}

函数名: dosexterr

功 能: 获取扩展dos错误信息

用 法: int dosexterr(struct doserr *dblkp);

程序例:#include <stdio.h>

#include <dos.h>int main(void)

{

file *fp;

struct doserror info; fp = fopen("perror.dat","r"); if (!fp) perror("unable to open file for

reading");

dosexterr(&info); printf("extended dos error \

information:\n");

printf(" extended error: \

%d\n",info.exterror);

printf(" class: \

%x\n",info.class);

printf(" action: \

%x\n",info.action);

printf(" error locus: \

%x\n",info.locus); return 0;

}

函数名: dostounix

功 能: 转换日期与时间为unix时间格式

用 法: long dostounix( struct date *dateptr,

struct time *timeptr );

程序例: #include <time.h>

#include <stddef.h>

#include <dos.h>

#include <stdio.h> int main(void)

{

time_t t; struct time d_time;

struct date d_date;

struct tm *local; getdate(&d_date);

gettime(&d_time); t = dostounix(&d_date, &d_time);

local = localtime(&t);

printf("time and date: %s\n", asctime(local));

return 0;

}

函数名: drawpoly

功 能: 画多边形

用 法: void far drawpoly( int numpoints,

int far *polypoints );

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */ int gdriver = detect, gmode, errorcode;

int maxx, maxy; /* our polygon array */

int poly[10]; /* 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();

/* terminate with an error code */

exit(1);

}

maxx = getmaxx();

maxy = getmaxy(); poly[0] = 20; /* 1st vertext */

poly[1] = maxy / 2; poly[2] = maxx - 20; /* 2nd */

poly[3] = 20; poly[4] = maxx - 50; /* 3rd */

poly[5] = maxy - 20; poly[6] = maxx / 2; /* 4th */

poly[7] = maxy / 2;

/*

drawpoly doesn´t automatically close

the polygon, so we close it.

*/ poly[8] = poly[0];

poly[9] = poly[1]; /* draw the polygon */

drawpoly(5, poly); /* clean up */

getch();

closegraph();

return 0;

}

函数名: dup

功 能: 复制一个文件句柄

用 法: int dup(int handle);

程序例:#include <string.h>

#include <stdio.h>

#include <conio.h>

#include <io.h>void flush(file *stream);int main(void)

{ file *fp;

char msg[] = "this is a test"; /* create a file */

fp = fopen("dummy.fil", "w"); /* write some data to the file */

fwrite(msg, strlen(msg), 1, fp);

clrscr();

printf("press any key to flush \

dummy.fil:");

getch(); /* flush the data to dummy.fil without

closing it */

flush(fp); printf("\nfile was flushed, press any \

key to quit:");

getch();

return 0;

}void flush(file *stream)

{

int duphandle;

/* flush tc´s internal buffer */

fflush(stream); /* make a duplicate file handle */

duphandle = dup(fileno(stream)); /* close the duplicate handle to flush the

dos buffer */

close(duphandle);

}

函数名: dup2

功 能: 复制文件句柄

用 法: int dup2(int oldhandle, int newhandle);

程序例:#include <sys\stat.h>

#include <string.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

#define stdout 1

int nul, oldstdout;

char msg[] = "this is a test"; /* create a file */

nul = open("dummy.fil", o_creat | o_rdwr,

s_iread | s_iwrite); /* create a duplicate handle for standard

output */

oldstdout = dup(stdout);

/*

redirect standard output to dummy.fil

by duplicating the file handle onto the

file handle for standard output. */ dup2(nul, stdout);

/* close the handle for dummy.fil */

close(nul); /* will be redirected into dummy.fil */

write(stdout, msg, strlen(msg)); /* restore original standard output

handle */

dup2(oldstdout, stdout); /* close duplicate handle for stdout */

close(oldstdout);

return 0;

}字母e开头函数

函数名: ecvt

功 能: 把一个浮点数转换为字符串

用 法: char ecvt( double value, int ndigit, int *decpt,

int *sign );

程序例:#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

char *string;

double value; int dec, sign;

int ndig = 10; clrscr();

value = 9.876;

string = ecvt(value, ndig, &dec, &sign);

printf("string = %s dec = %d \

sign = %d\n", string, dec, sign);

value = -123.45;

ndig= 15;

string = ecvt(value,ndig,&dec,&sign);

printf("string = %s dec = %d sign = %d\n",

string, dec, sign); value = 0.6789e5; /* scientific

notation */

ndig = 5;

string = ecvt(value,ndig,&dec,&sign);

printf("string = %s dec = %d\

sign = %d\n", string, dec, sign); return 0;

}

函数名: ellipse

功 能: 画一椭圆

用 法: void far ellipse( int x, int y, int stangle,

int endangle, int xradius,

int yradius);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{ /* request auto detection */

int gdriver = detect, gmode, errorcode;

int midx, midy;

int stangle = 0, endangle = 360;

int xradius = 100, yradius = 50; /* initialize graphics, 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;

setcolor(getmaxcolor()); /* draw ellipse */

ellipse(midx, midy, stangle, endangle,

xradius, yradius);

/* clean up */

getch();

closegraph();

return 0;

}

函数名: enable

功 能: 开放硬件中断

用 法: void enable(void);

程序例:/* ** note:

this is an interrupt service routine. you can not compile

this program with test stack overflow turned on and get an

executable file which will operate correctly.

*/#include <stdio.h>

#include <dos.h>

#include <conio.h>/* the clock tick interrupt */

#define intr 0x1cvoid interrupt ( *oldhandler)(void);int count=0;void interrupt handler(void)

{

/*

disable interrupts during the handling of the interrupt

*/

disable();

/* increase the global counter */ count++;

/* re enable interrupts at the end of the handler*/

enable();

/* call the old routine */

oldhandler();

}int main(void)

{

/* save the old interrupt vector */

oldhandler = getvect(intr);

/* install the new interrupt handler */

setvect(intr, handler);/* loop until the counter exceeds 20 */

while (count < 20)

printf("count is %d\n",count);/* reset the old interrupt handler */

setvect(intr, oldhandler); return 0;

}

函数名: eof

功 能: 检测文件结束

用 法: int eof(int *handle);

程序例:#include <sys\stat.h>

#include <string.h>

#include <stdio.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

int handle; char msg[] = "this is a test";

char ch;

/* create a file */

handle = open("dummy.fil",

o_creat | o_rdwr,

s_iread | s_iwrite);

/* write some data to the file */

write(handle, msg, strlen(msg)); /* seek to the beginning of the file */

lseek(handle, 0l, seek_set); /* reads chars from the file until hit eof */

do

{ read(handle, &ch, 1);

printf("%c", ch);

} while (!eof(handle)); close(handle);

return 0;

}

函数名: exec...

功 能: 装入并运行其它程序的函数

用 法: int execl( char *pathname, char *arg0, arg1, ...,

argn, null );

int execle( char *pathname, char *arg0, arg1, ...,

argn, null, char *envp[] );

int execlp( char *pathname, char *arg0, arg1, ..,

null );

int execple( char *pathname, char *arg0, arg1, ...,

null, char *envp[] );

int execv( char *pathname, char *argv[] );

int execve( char *pathname, char *argv[],

char *envp[] );

int execvp( char *pathname, char *argv[] ); int execvpe( char *pathname, char *argv[],

char *envp[] );

程序例:/* execv example */

#include <process.h>

#include <stdio.h>

#include <errno.h>

void main(int argc, char *argv[])

{

int i; printf("command line arguments:\n"); for (i=0; i<argc; i++)

printf("[%2d] : %s\n", i, argv[i]);

printf("about to exec child with arg1 arg2 ...\n");

execv("child.exe", argv);

perror("exec error");

exit(1);

}

函数名: exit

功 能: 终止程序

用 法: void exit(int status);

程序例:#include <stdlib.h>

#include <conio.h>

#include <stdio.h>int main(void)

{

int status; printf("enter either 1 or 2\n"); status = getch();

/* sets dos errorlevel */

exit(status - ´0´);/* note: this line is never reached */

return 0;

}

函数名: exp

功 能: 指数函数

用 法: double exp(double x);

程序例:#include <stdio.h>

#include <math.h>int main(void)

{

double result;

double x = 4.0; result = exp(x); printf("´e´ raised to the power \

of %lf (e ^ %lf) = %lf\n",

x, x, result); return 0;

}字母f开头函数函数名: fabs

功 能: 返回浮点数的绝对值

用 法: double fabs(double x);

程序例:#include <stdio.h>

#include <math.h>

int main(void)

{

float number = -1234.0;

printf("number: %f absolute value: %f\n",

number, fabs(number));

return 0;

}

函数名: farcalloc

功 能: 从远堆栈中申请空间

用 法: void far *farcalloc( unsigned long units,

unsigned ling unitsz );

程序例:

#include <stdio.h>

#include <alloc.h>

#include <string.h>

#include <dos.h>int main(void)

{

char far *fptr;

char *str = "hello"; /* allocate memory for the far pointer */

fptr = farcalloc(10, sizeof(char)); /* copy "hello" into allocated memory */ /*

note: movedata is used because you

might be in a small data model, in

which case a normal string copy routine

can not be used since it assumes the

pointer size is near. */

movedata(fp_seg(str), fp_off(str),

fp_seg(fptr), fp_off(fptr),

strlen(str)); /* display string (note the f modifier) */

printf("far string is: %fs\n", fptr); /* free the memory */

farfree(fptr); return 0;

}

函数名: farcoreleft

功 能: 返回远堆中未作用存储区大小

用 法: long farcoreleft(void);

程序例:#include <stdio.h>

#include <alloc.h>int main(void)

{

printf("the difference between the\

highest allocated block in the\

far\n"); printf("heap and the top of the far heap\

is: %lu bytes\n", farcoreleft()); return 0;

}

函数名: farfree

功 能: 从远堆中释放一块

用 法: void farfree(void);

程序例:#include <stdio.h>

#include <alloc.h>

#include <string.h>

#include <dos.h>int main(void)

{

char far *fptr;

char *str = "hello"; /* allocate memory for the far pointer */

fptr = farcalloc(10, sizeof(char)); /* copy "hello" into allocated memory */

/*

note: movedata is used because you might be in a

small data model, in which case a normal string

copy routine can´t be used since it assumes the

pointer size is near.

*/

movedata(fp_seg(str), fp_off(str),

fp_seg(fptr), fp_off(fptr),

strlen(str)); /* display string (note the f modifier) */

printf("far string is: %fs\n", fptr); /* free the memory */

farfree(fptr); return 0;

}

函数名: farmalloc

功 能: 从远堆中分配存储块

用 法: void far *farmalloc(unsigned long size);

程序例:#include <stdio.h>

#include <alloc.h>

#include <string.h>

#include <dos.h>int main(void)

{

char far *fptr;

char *str = "hello"; /* allocate memory for the far pointer */

fptr = farmalloc(10); /* copy "hello" into allocated memory */

/*

note: movedata is used because we might

be in a small data model, in which case

a normal string copy routine can not be

used since it assumes the pointer size

is near.

*/

movedata(fp_seg(str), fp_off(str),

fp_seg(fptr), fp_off(fptr),

strlen(str)); /* display string (note the f modifier) */

printf("far string is: %fs\n", fptr); /* free the memory */

farfree(fptr); return 0;

}

函数名: farrealloc

功 能: 调整远堆中的分配块

用 法: void far *farrealloc( void far *block,

unsigned long newsize );

程序例:#include <stdio.h>

#include <alloc.h>int main(void)

{

char far *fptr; fptr = farmalloc(10); printf("first address: %fp\n", fptr);

fptr = farrealloc(fptr,20);

printf("new address : %fp\n", fptr);

farfree(fptr);

return 0;

}

函数名: fclose

功 能: 关闭一个流

用 法: int fclose(file *stream);

程序例:#include <string.h>

#include <stdio.h>int main(void)

{

file *fp;

char buf[11] = "0123456789"; /* create a file containing 10 bytes */ fp = fopen("dummy.fil", "w");

fwrite(&buf, strlen(buf), 1, fp); /* close the file */

fclose(fp);

return 0;

}

函数名: fcloseall

功 能: 关闭打开流

用 法: int fcloseall(void);

程序例:#include <stdio.h>int main(void)

{

int streams_closed; /* open two streams */

fopen("dummy.one", "w");

fopen("dummy.two", "w"); /* close the open streams */

streams_closed = fcloseall(); if (streams_closed == eof)

/* issue an error message */

perror("error");

else

/* print result of fcloseall() function */

printf("%d streams were closed.\n", streams_closed); return 0;

}

函数名: fcvt

功 能: 把一个浮点数转换为字符串

用 法: char *fcvt( double value, int ndigit, int *decpt,

int *sign );

程序例:#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

char *string;

double value; int dec, sign;

int ndig = 10; clrscr();

value = 9.876;

string = ecvt(value, ndig, &dec, &sign);

printf("string = %s dec = %d \

sign = %d\n", string, dec, sign);

value = -123.45;

ndig= 15;

string = ecvt(value,ndig,&dec,&sign);

printf("string = %s dec = %d sign = %d\n",

string, dec, sign); value = 0.6789e5; /* scientific

notation */

ndig = 5;

string = ecvt(value,ndig,&dec,&sign);

printf("string = %s dec = %d\

sign = %d\n", string, dec, sign);

return 0;

}

函数名: fdopen

功 能: 把流与一个文件句柄相接

用 法: file *fdopen(int handle, char *type);

程序例:#include <sys\stat.h>

#include <stdio.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

int handle;

file *stream; /* open a file */

handle = open("dummy.fil", o_creat,

s_iread | s_iwrite);

/* now turn the handle into a stream */

stream = fdopen(handle, "w"); if (stream == null)

printf("fdopen failed\n");

else

{

fprintf(stream, "hello world\n");

fclose(stream);

} return 0;

}

函数名: feof

功 能: 检测流上的文件结束符

用 法: int feof(file *stream);

程序例:#include <stdio.h>int main(void)

{

file *stream; /* open a file for reading */

stream = fopen("dummy.fil", "r"); /* read a character from the file */

fgetc(stream); /* check for eof */

if (feof(stream))

printf("we have reached end-of-file\n"); /* close the file */

fclose(stream);

return 0;

}

函数名: ferror

功 能: 检测流上的错误

用 法: int ferror(file *stream);

程序例:#include <stdio.h>int main(void)

{

file *stream; /* open a file for writing */

stream = fopen("dummy.fil", "w");

/* force an error condition by attempting to read */

(void) getc(stream); if (ferror(stream)) /*test for an error on the stream*/

{

/* display an error message */

printf("error reading from dummy.fil\n"); /* reset the error and eof indicators */

clearerr(stream);

} fclose(stream);

return 0;

}

函数名: fflush

功 能: 清除一个流

用 法: int fflush(file *stream);

程序例:#include <string.h>

#include <stdio.h>

#include <conio.h>

#include <io.h>void flush(file *stream);int main(void)

{ file *stream;

char msg[] = "this is a test"; /* create a file */

stream = fopen("dummy.fil", "w"); /* write some data to the file */

fwrite(msg, strlen(msg), 1, stream); clrscr();

printf("press any key to flush\

dummy.fil:");

getch(); /* flush the data to dummy.fil without\

closing it */

flush(stream); printf("\nfile was flushed, press any key\

to quit:");

getch();

return 0;

}void flush(file *stream)

{

int duphandle; /* flush the stream´s internal buffer */

fflush(stream); /* make a duplicate file handle */

duphandle = dup(fileno(stream)); /* close the duplicate handle to flush\

the dos buffer */

close(duphandle);

}

函数名: fgetc

功 能: 从流中读取字符

用 法: int fgetc(file *stream);

程序例:#include <string.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

file *stream;

char string[] = "this is a test";

char ch; /* open a file for update */

stream = fopen("dummy.fil", "w+");

/* write a string into the file */

fwrite(string, strlen(string), 1, stream);

/* seek to the beginning of the file */

fseek(stream, 0, seek_set);

do

{

/* read a char from the file */

ch = fgetc(stream); /* display the character */

putch(ch);

} while (ch != eof); fclose(stream);

return 0;

}

函数名: fgetchar

功 能: 从流中读取字符

用 法: int fgetchar(void);

程序例:#include <stdio.h>int main(void)

{

char ch;

/* prompt the user for input */

printf("enter a character followed by \

<enter>: ");

/* read the character from stdin */ ch = fgetchar();

/* display what was read */

printf("the character read is: ´%c´\n",

ch);

return 0;

}

函数名: fgetpos

功 能: 取得当前文件的句柄

用 法: int fgetpos(file *stream);

程序例:#include <string.h>

#include <stdio.h>int main(void)

{

file *stream;

char string[] = "this is a test";

fpos_t filepos;

/* open a file for update */

stream = fopen("dummy.fil", "w+"); /* write a string into the file */

fwrite(string, strlen(string), 1, stream); /* report the file pointer position */

fgetpos(stream, &filepos);

printf("the file pointer is at byte\

%ld\n", filepos); fclose(stream);

return 0;

}

函数名: fgets

功 能: 从流中读取一字符串

用 法: char *fgets(char *string, int n, file *stream);

程序例:#include <string.h>

#include <stdio.h>int main(void)

{

file *stream;

char string[] = "this is a test";

char msg[20];

/* open a file for update */ stream = fopen("dummy.fil", "w+");

/* write a string into the file */

fwrite(string, strlen(string), 1, stream);

/* seek to the start of the file */

fseek(stream, 0, seek_set);

/* read a string from the file */

fgets(msg, strlen(string)+1, stream); /* display the string */

printf("%s", msg); fclose(stream);

return 0;

}

函数名: filelength

功 能: 取文件长度字节数

用 法: long filelength(int handle);

程序例:#include <string.h>

#include <stdio.h>

#include <fcntl.h>

#include <io.h>int main(void)

{

int handle;

char buf[11] = "0123456789"; /* create a file containing 10 bytes */

handle = open("dummy.fil", o_creat);

write(handle, buf, strlen(buf)); /* display the size of the file */

printf("file length in bytes: %ld\n",

filelength(handle)); /* close the file */

close(handle);

return 0;

}

函数名: fillellipse

功 能: 画出并填充一椭圆

用 法: void far fillellipse( int x, int y, int xradius,

int yradius );

程序例:#include <graphics.h>

#include <conio.h>int main(void)

{

int gdriver = detect, gmode;

int xcenter, ycenter, i;

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

xcenter = getmaxx() / 2;

ycenter = getmaxy() / 2; for (i=0; i<13; i++)

{

setfillstyle(i,white);

fillellipse(xcenter,ycenter,100,50);

getch();

}

closegraph();

return 0;

}

函数名: fillpoly

功 能: 画并填充一个多边形

用 法: void far fillpoly( int numpoints,

int far *polypoints );

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */ int gdriver = detect, gmode, errorcode;

int i, maxx, maxy; /* our polygon array */

int poly[8]; /* initialize graphics, 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(); poly[0] = 20; /* 1st vertext */

poly[1] = maxy / 2;

poly[2] = maxx - 20; /* 2nd */

poly[3] = 20; poly[4] = maxx - 50; /* 3rd */

poly[5] = maxy - 20;

/*

4th vertex. fillpoly automatically

closes the polygon.

*/

poly[6] = maxx / 2;

poly[7] = maxy / 2; /* loop through the fill patterns */

for (i=empty_fill; i<user_fill; i++)

{

/* set fill pattern */

setfillstyle(i, getmaxcolor()); /* draw a filled polygon */

fillpoly(4, poly);

getch();

} /* clean up */

closegraph();

return 0;

}

函数名: findfirst

功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件

用 法: int findfirst( char *pathname, struct ffblk *ffblk,

int attrib);

程序例:/* findfirst example */#include <stdio.h>

#include <dir.h>int main(void)

{

struct ffblk ffblk; int done;

printf("directory listing of *.*\n");

done = findfirst("*.*",&ffblk,0);

while (!done)

{

printf(" %s\n", ffblk.ff_name);

done = findnext(&ffblk);

}

return 0;

}

函数名: findnext

功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件

用 法: int findnext(struct ffblk *ffblk);

程序例:

/* findnext example */#include <stdio.h>

#include <dir.h>int main(void)

{

struct ffblk ffblk;

int done;

printf("directory listing of *.*\n"); done = findfirst("*.*",&ffblk,0);

while (!done)

{

printf(" %s\n", ffblk.ff_name);

done = findnext(&ffblk);

}

return 0;

}

函数名: floodfill

功 能: 填充一个有界区域

用 法: void far floodfill(int x, int y, int border);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>int main(void)

{

/* request auto detection */

int gdriver = detect, gmode, errorcode; int maxx, maxy; /* initialize graphics, 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(); /* select drawing color */

setcolor(getmaxcolor()); /* select fill color */

setfillstyle(solid_fill, getmaxcolor()); /* draw a border around the screen */

rectangle(0, 0, maxx, maxy); /* draw some circles */

circle(maxx / 3, maxy /2, 50);

circle(maxx / 2, 20, 100);

circle(maxx-20, maxy-50, 75);

circle(20, maxy-20, 25); /* wait for a key */

getch(); /* fill in bounded region */

floodfill(2, 2, getmaxcolor()); /* clean up */

getch(); closegraph();

return 0;

}

函数名: floor

功 能: 向下舍入

用 法: double floor(double x);

程序例:#include <stdio.h>

#include <math.h>int main(void)

{

double number = 123.54;

double down, up; down = floor(number); up = ceil(number); printf("original number %10.2lf\n",

number);

printf("number rounded down %10.2lf\n",

down);

printf("number rounded up %10.2lf\n",

up); return 0;

}

函数名: flushall

功 能: 清除所有缓冲区

用 法: int flushall(void);

程序例:#include <stdio.h>int main(void)

{

file *stream; /* create a file */

stream = fopen("dummy.fil", "w");

/* flush all open streams */ printf("%d streams were flushed.\n",

flushall());

/* close the file */

fclose(stream);

return 0;

}

函数名: fmod

功 能: 计算x对y的模, 即x/y的余数

用 法: double fmod(double x, double y);

程序例:#include <stdio.h>

#include <math.h>int main(void)

{

double x = 5.0, y = 2.0;

double result; result = fmod(x,y); printf("the remainder of (%lf / %lf) is \

%lf\n", x, y, result);

return 0;

}

函数名: fnmerge

功 能: 建立新文件名

用 法: void fnerge(char *path, char *drive, char *dir);

程序例:#include <string.h>

#include <stdio.h>

#include <dir.h>int main(void)

{

char s[maxpath];

char drive[maxdrive];

char dir[maxdir]; char file[maxfile];

char ext[maxext]; getcwd(s,maxpath); /*get the current working directory*/

strcat(s,"\\"); /*append on a trailing character*/

fnsplit(s,drive,dir,file,ext);

/* split the string to separate elems */

strcpy(file,"data");

strcpy(ext,".txt");

fnmerge(s,drive,dir,file,ext);

/* merge everything into one string */

puts(s); /* display resulting string */

return 0;

}

函数名: fopen

功 能: 打开一个流

用 法: file *fopen(char *filename, char *type);

程序例:#include <stdlib.h>

#include <stdio.h>

#include <dir.h>int main(void)

{

char *s;

char drive[maxdrive];

char dir[maxdir]; char file[maxfile];

char ext[maxext];

int flags; s=getenv("comspec");

/* get the comspec environment parameter */

flags=fnsplit(s,drive,dir,file,ext); printf("command processor info:\n");

if(flags & drive)

printf("\tdrive: %s\n",drive);

if(flags & directory)

printf("\tdirectory: %s\n",dir); if(flags & filename)

printf("\tfile: %s\n",file);

if(flags & extension)

printf("\textension: %s\n",ext); return 0;

}

函数名: fprintf

功 能: 传送格式化输出到一个流中

用 法: int fprintf( file *stream,

char *format[, argument,...] );

程序例:/* program to create backup of the

autoexec.bat file */#include <stdio.h>int main(void)

{

file *in, *out; if ((in = fopen("\\autoexec.bat", "rt"))

== null)

{

fprintf(stderr, "cannot open input \

file.\n");

return 1;

}

if ((out = fopen("\\autoexec.bak", "wt"))

== null)

{ fprintf(stderr, "cannot open output \

file.\n");

return 1;

} while (!feof(in))

fputc(fgetc(in), out);

fclose(in);

fclose(out);

return 0;

}

函数名: fp_off

功 能: 获取远地址偏移量

用 法: unsigned fp_off(void far *farptr);

程序例:/* fp_off */#include <dos.h>

#include <stdio.h>int main(void)

{

char *str = "fpoff.c";

printf("the offset of this file in memory\

is: %fp\n", fp_off(str)); return 0;

}

函数名: fp_seg

功 能: 获取远地址段值

用 法: unsigned fp_seg(void far *farptr);

程序例:/* fp_seg */#include <dos.h>

#include <stdio.h>int main(void)

{

char *filename = "fpseg.c";

printf("the offset of this file in memory\

is: %fp\n", fp_seg(filename)); return(0);

}

函数名: fputc

功 能: 送一个字符到一个流中

用 法: int fputc(int ch, file *stream);

程序例:

#include <stdio.h>int main(void)

{

char msg[] = "hello world";

int i = 0; while (msg[i])

{

fputc(msg[i], stdout); i++;

}

return 0;

}

函数名: fputchar

功 能: 送一个字符到标准输出流(stdout)中

用 法: int fputchar(char ch);

程序例:#include <stdio.h>int main(void)

{

char msg[] = "this is a test";

int i = 0;

while (msg[i])

{

fputchar(msg[i]); i++;

}

return 0;

}

函数名: fputs

功 能: 送一个字符到一个流中

用 法: int fputs(char *string, file *stream);

程序例:#include <stdio.h>

int main(void)

{

/* write a string to standard output */

fputs("hello world\n", stdout);

return 0;

}

函数名: fread

功 能: 从一个流中读数据

用 法: int fread( void *ptr, int size, int nitems,

file *stream );

程序例:#include <string.h>

#include <stdio.h>int main(void)

{

file *stream;

char msg[] = "this is a test";

char buf[20]; if ((stream = fopen("dummy.fil", "w+"))

== null)

{

fprintf(stderr,

"cannot open output file.\n");

return 1;

}

/* write some data to the file */

fwrite(msg, strlen(msg)+1, 1, stream); /* seek to the beginning of the file */

fseek(stream, seek_set, 0); /* read the data and display it */

fread(buf, strlen(msg)+1, 1, stream);

printf("%s\n", buf); fclose(stream);

return 0;

}

函数名: free

功 能: 释放已分配的块

用 法: void free(void *ptr);

程序例:#include <string.h>

#include <stdio.h>

#include <alloc.h>int main(void)

{

char *str; /* allocate memory for string */

str = malloc(10); /* copy "hello" to string */

strcpy(str, "hello"); /* display string */

printf("string is %s\n", str); /* free memory */

free(str); return 0;

}

函数名: freemem

功 能: 释放先前分配的dos内存块

用 法: int freemem(unsigned seg);

程序例:#include <dos.h>

#include <alloc.h>

#include <stdio.h>int main(void)

{

unsigned int size, segp;

int stat; size = 64; /* (64 x 16) = 1024 bytes */

stat = allocmem(size, &segp);

if (stat < 0)

printf("allocated memory at segment:\

%x\n", segp);

else

printf("failed: maximum number of\

paragraphs available is %u\n",

stat);

freemem(segp); return 0;

}

函数名: freopen

功 能: 替换一个流

用 法: file *freopen( char *filename, char *type,

file *stream );

程序例:#include <stdio.h>int main(void)

{

/* redirect standard output to a file */

if (freopen("output.fil", "w", stdout)

== null) fprintf(stderr, "error redirecting\

stdout\n"); /* this output will go to a file */

printf("this will go into a file."); /* close the standard output stream */

fclose(stdout); return 0;

}

函数名: frexp

功 能: 把一个双精度数分解为尾数的指数

用 法: double frexp(double value, int *eptr);

程序例:#include <math.h>

#include <stdio.h>int main(void)

{

double mantissa, number;

int exponent;

number = 8.0;

mantissa = frexp(number, &exponent); printf("the number %lf is ", number);

printf("%lf times two to the ", mantissa);

printf("power of %d\n", exponent);

return 0;

}

函数名: fscanf

功 能: 从一个流中执行格式化输入

用 法: int fscanf( file *stream,

char *format[,argument...] );

程序例:#include <stdlib.h>

#include <stdio.h>int main(void)

{

int i; printf("input an integer: "); /* read an integer from the

standard input stream */

if (fscanf(stdin, "%d", &i))

printf("the integer read was: %i\n",

i);

else

{

fprintf(stderr, "error reading an \

integer from stdin.\n");

exit(1);

}

return 0;

}

函数名: fseek

功 能: 重定位流上的文件指针

用 法: int fseek(file *stream,long offset,int fromwhere);

程序例:#include <stdio.h>long filesize(file *stream);int main(void)

{

file *stream;

stream = fopen("myfile.txt", "w+");

fprintf(stream, "this is a test"); printf("filesize of myfile.txt is %ld bytes\n\

", filesize(stream));

fclose(stream);

return 0;

}long filesize(file *stream)

{

long curpos, length; curpos = ftell(stream);

fseek(stream, 0l, seek_end);

length = ftell(stream);

fseek(stream, curpos, seek_set); return length;

}

函数名: fsetpos

功 能: 定位流上的文件指针

用 法: int fsetpos(file *stream, const fpos_t *pos);

程序例:#include <stdlib.h>

#include <stdio.h>void showpos(file *stream);int main(void)

{

file *stream;

fpos_t filepos; /* open a file for update */

stream = fopen("dummy.fil", "w+"); /* save the file pointer position */

fgetpos(stream, &filepos); /* write some data to the file */

fprintf(stream, "this is a test"); /* show the current file position */

showpos(stream); /* set a new file position, display it */

if (fsetpos(stream, &filepos) == 0) showpos(stream);

else

{

fprintf(stderr, "error setting file \

pointer.\n");

exit(1);

} /* close the file */

fclose(stream);

return 0;

}void showpos(file *stream)

{

fpos_t pos; /* display the current file pointer

position of a stream */

fgetpos(stream, &pos);

printf("file position: %ld\n", pos);

}

函数名: fstat

功 能: 获取打开文件信息

用 法: int fstat(char *handle, struct stat *buff);

程序例:#include <sys\stat.h>

#include <stdio.h>

#include <time.h>int main(void)

{

struct stat statbuf;

file *stream; /* open a file for update */

if ((stream = fopen("dummy.fil", "w+"))

== null)

{

fprintf(stderr, "cannot open output \

file.\n");

return(1);

}

fprintf(stream, "this is a test");

fflush(stream); /* get information about the file */

fstat(fileno(stream), &statbuf);

fclose(stream); /* display the information returned */

if (statbuf.st_mode & s_ifchr)

printf("handle refers to a device.\n");

if (statbuf.st_mode & s_ifreg)

printf("handle refers to an ordinary \

file.\n");

if (statbuf.st_mode & s_iread)

printf("user has read permission on \

file.\n");

if (statbuf.st_mode & s_iwrite)

printf("user has write permission on \

file.\n"); printf("drive letter of file: %c\n",

´a´+statbuf.st_dev);

printf("size of file in bytes: %ld\n",

statbuf.st_size);

printf("time file last opened: %s\n",

ctime(&statbuf.st_ctime));

return 0;

}

函数名: ftell

功 能: 返回当前文件指针

用 法: long ftell(file *stream);

程序例:#include <stdio.h>int main(void)

{

file *stream; stream = fopen("myfile.txt", "w+");

fprintf(stream, "this is a test"); printf("the file pointer is at byte \

%ld\n", ftell(stream));

fclose(stream);

return 0;

}

函数名: fwrite

功 能: 写内容到流中

用 法: int fwrite( void *ptr, int size, int nitems,

file *stream );

程序例:#include <stdio.h>struct mystruct

{

int i;

char ch;

};int main(void)

{

file *stream;

struct mystruct s; if ((stream = fopen("test.$$$", "wb")) == null)

/* open file test.$$$ */

{

fprintf(stderr, "cannot open output file.\n");

return 1;

}

s.i = 0;

s.ch = ´a´; fwrite(&s, sizeof(s), 1, stream);

/* write struct s to file */

fclose(stream); /* close file */

return 0;

}字母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;

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

}

函数名: getarccoords

功 能: 取得最后一次调用arc的坐标

用 法: void far getarccoords

( struct arccoordstype far *arccoords );

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h>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 <stdio.h>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 <stdio.h>

#include <dos.h>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 <stdio.h>

#include <conio.h>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 <stdio.h>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 <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h>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 <dir.h>

#include <stdio.h>

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

}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 <stdio.h>

#include <dir.h>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 <dos.h>

#include <stdio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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;

}

函数名: getdfree

功 能: 取磁盘自由空间

用 法: void getdfree(int drive, struct dfree *dfreep);

程序例:#include <stdio.h>

#include <stdlib.h>

#include <dir.h>

#include <dos.h>int main(void)

{

struct dfree free;

long avail; int drive; drive = getdisk();

getdfree(drive+1, &free);

if (free.df_sclus == 0xffff)

{

printf("error in getdfree() call\n");

exit(1);

} avail = (long) free.df_avail *

(long) free.df_bsec *

(long) free.df_sclus;

printf("drive %c: has %ld bytes \

available\n", ´a´ + drive, avail); return 0;

}

函数名: getdisk

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

用 法: int getdisk(void);

程序例:#include <stdio.h>

#include <dir.h>int main(void)

{

int disk; disk = getdisk() + ´a´; printf("the current drive is: %c\n",

disk);

return 0;

}

函数名: getdrivername

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

用 法: char *getdrivename(void);

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <dos.h>

#include <stdio.h>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 <stdlib.h>

#include <stdio.h>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 <stdio.h>

#include <dos.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>/* 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 <stdio.h>

#include <io.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <alloc.h>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 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;

}

}

函数名: getlinesettings

功 能: 取当前线型.模式与宽度

用 法: void far getlinesettings

( struct linesettingstype far *lininfo );

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>/* 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%xis 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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

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

程序例:#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>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<pal.size; i++, y+=ht)

{ sprintf(pval,

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

pal.colors[i]);

outtextxy(0, y, pval);

}

}/* clean up */

getch();

closegraph();

return 0;

}

函数名: getpass

功 能: 读一个口令

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

程序例:#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <dos.h>#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<pixel_count; i++)

{

x = random(maxx);

y = random(maxy);

color = random(maxcolor);

putpixel(x, y, color);

} delay(delay_time);

srand(seed);

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

{

x = random(maxx);

y = random(maxy);

color = random(maxcolor);

if (color == getpixel(x, y))

putpixel(x, y, 0);

}

}

/* clean up */

getch();

closegraph();

return 0;

}

函数名: gets

功 能: 从流中取一字符串

用 法: char *gets(char *string);

程序例:#include <stdio.h>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 <conio.h>char buffer[4096];int main(void)

{ int i;

clrscr();

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

getch();

clrscr();

gotoxy(1, 25);

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

getch();

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

gotoxy(1, 25); cprintf("press any key to quit...");

getch();

return 0;

}

函数名: gettextinfo

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

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

程序例:#include <conio.h>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 <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>/* 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 = de