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