C语言函数库大全


函数大全(a 开头) 函数名: abort 功 能: 异常终止一个进程 用 法: void abort(void); 程序例: #include #include int main(void) { printf("Calling abort()\n"); abort(); return 0; /* This is never reached */ } 函数名: abs 功 能: 求整数的绝对值 用 法: int abs(int i); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int number = -1234; printf("number: %d absolute value: %d\n", number, abs(number)); return 0; } 函数名: absread, abswirte 功 能: 绝对磁盘扇区读、写数据 用 法: int absread(int drive, int nsects, int sectno, void *buffer); int abswrite(int drive, int nsects, in tsectno, void *buffer); 程序例: /* absread example */ #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int i, strt, ch_out, sector; char buf[512]; printf("Insert a diskette into drive A and 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("\n"); return(0); } 函数名: access 功 能: 确定文件的访问权限 用 法: int access(const char *filename, int amode); 程序例: #include #include int file_exists(char *filename); int main(void) { printf("Does NOTEXIST.FIL exist: %s\n", file_exists("NOTEXISTS.FIL") ? "YES" : "NO"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int file_exists(char *filename) { return (access(filename, 0) == 0); } 函数名: acos 功 能: 反余弦函数 用 法: double acos(double x); 程序例: #include #include 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: allocmem 功 能: 分配 DOS 存储段 用 法: int allocmem(unsigned size, unsigned *seg); 程序例: #include #include #include 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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("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 arc */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. arc(midx, midy, stangle, endangle, radius); /* clean up */ getch(); closegraph(); return 0; } 函数名: asctime 功 能: 转换日期和时间为 ASCII 码 用 法: char *asctime(const struct tm *tblock); 程序例: #include #include #include int main(void) { struct tm t; char str[80]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: asin 功 能: 反正弦函数 用 法: double asin(double x); 程序例: #include #include 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: assert 功 能: 测试一个条件并可能使程序终止 用 法: void assert(int test); 程序例: #include #include #include struct ITEM { int key; int value; }; /* add item to list, make sure list is not null */ void additem(struct ITEM *itemptr) { assert(itemptr != NULL); /* add item to list */ } int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. additem(NULL); return 0; } 函数名: atan 功 能: 反正切函数 用 法: double atan(double x); 程序例: #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: atan2 功 能: 计算 Y/X 的反正切值 用 法: double atan2(double y, double x); 程序例: #include #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: atexit 功 能: 注册终止函数 用 法: int atexit(atexit_t func); 程序例: #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* post exit function #2 */ atexit(exit_fn2); return 0; } 函数名: atof 功 能: 把字符串转换成浮点数 用 法: double atof(const char *nptr); 程序例: #include #include int main(void) { float f; char *str = "12345.67"; f = atof(str); printf("string = %s float = %f\n", str, f); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: atoi 功 能: 把字符串转换成长整型数 用 法: int atoi(const char *nptr); 程序例: #include #include int main(void) { int n; char *str = "12345.67"; n = atoi(str); printf("string = %s integer = %d\n", str, n); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: atol 功 能: 把字符串转换成长整型数 用 法: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 函数大全(b 开头) 函数名: bar Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 画一个二维条形图 用 法: void far bar(int left, int top, int right, int bottom); 程序例: #include #include #include #include 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 */ { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; /* loop through the fill patterns */ for (i=SOLID_FILL; i { /* set the fill style */ setfillstyle(i, getmaxcolor()); /* draw the bar */ bar(midx-50, midy-50, midx+50, midy+50); getch(); } /* clean up */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. closegraph(); return 0; } 函数名: bar3d 功 能: 画一个三维条形图 用 法: void far bar3d(int left, int top, int right, int bottom, int depth, int topflag); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int midx, midy, i; /* 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 error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* loop through the fill patterns */ for (i=EMPTY_FILL; i { /* set the fill style */ setfillstyle(i, getmaxcolor()); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 系统调用 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: int bdosptr(int dosfun, void *argument, unsigned dosal); 程序例: #include #include #include #include #include #include #define BUFLEN 80 int main(void) { char buffer[BUFLEN]; int test; printf("Enter full pathname of a directory\n"); gets(buffer); test = bdosptr(0x3B,buffer,0); if(test) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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 #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #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()) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #define RIGHT 0x01 #define LEFT 0x02 #define CTRL 0x04 #define ALT 0x08 int 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include 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) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include int main(void) { char *ptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include int main(void) { struct complex z; double val; z.x = 2.0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include int main(void) { char *str = NULL; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: cgets 功 能: 从控制台读字符串 用 法: char *cgets(char *str); 程序例: #include #include 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include char old_dir[MAXDIR]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: chsize 功 能: 改变文件大小 用 法: int chsize(int handle, long size); 程序例: #include #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* close the file */ close(handle); return 0; } 函数名: circle 功 能: 在给定半径以(x, y)为圆心画圆 用 法: void far circle(int x, int y, int radius); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } 函数名: cleardevice 功 能: 清除图形屏幕 用 法: void far cleardevice(void); 程序例: #include #include #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: clearerr 功 能: 复位错误标志 用 法:void clearerr(FILE *stream); 程序例: #include 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)) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #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 */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } 函数名: _close, close 功 能: 关闭文件句柄 用 法: int close(int handle); 程序例: #include #include #include #include main() { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: clock 功 能: 确定处理器时间 用 法: clock_t clock(void); 程序例: #include #include #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: closegraph 功 能: 关闭图形系统 用 法: void far closegraph(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int x, y; /* initialize graphics mode */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: coreleft 功 能: 返回未使用内存的大小 用 法: unsigned coreleft(void); 程序例: #include #include 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #define USA 0 int 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, ...]); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 写字符到屏幕 用 法: void cputs(const char *string); 程序例: #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: _creat creat 功 能: 创建一个新文件或重写一个已存在的文件 用 法: int creat (const char *filename, int permiss); 程序例: #include #include #include #include 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: creattemp 功 能: 创建一个新文件或重写一个已存在的文件 用 法: int creattemp(const char *filename, int attrib); 程序例: #include #include #include 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: cscanf 功 能: 从控制台执行格式化输入 用 法: int cscanf(char *format[,argument, ...]); 程序例: #include int main(void) { char string[80]; /* clear the screen */ clrscr(); /* Prompt the user for input */ cprintf("Enter a string with no spaces:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include int main(void) { time_t t; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. time(&t); printf("Today's date and time: %s\n", ctime(&t)); return 0; } 函数名: ctrlbrk 功 能: 设置 Ctrl-Break 处理程序 用 法: void ctrlbrk(*fptr)(void); 程序例: #include #include #define ABORT 0 int c_break(void) { printf("Control-Break pressed. Program aborting ...\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return (ABORT); } int main(void) { ctrlbrk(c_break); for(;;) { printf("Looping... Press to quit:\n"); } return 0; } 函数大全(c 开头) 函数名: cabs 功 能: 计算复数的绝对值 用 法: double cabs(struct complex z); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: ceil 功 能: 向上舍入 用 法: double ceil(double x); 程序例: #include #include int main(void) { double number = 123.54; double down, up; down = floor(number); up = ceil(number); printf("original number %5.2lf\n", number); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("number rounded down %5.2lf\n", down); printf("number rounded up %5.2lf\n", up); return 0; } 函数名: cgets 功 能: 从控制台读字符串 用 法: char *cgets(char *str); 程序例: #include #include int main(void) { char buffer[83]; char *p; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 改变工作目录 用 法: int chdir(const char *path); 程序例: #include #include #include 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("\\")) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: _chmod, chmod 功 能: 改变文件的访问方式 用 法: int chmod(const char *filename, int permiss); 程序例: #include #include #include 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include 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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } 函数名: clearerr 功 能: 复位错误标志 用 法:void clearerr(FILE *stream); 程序例: #include int main(void) { FILE *fp; char ch; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: clearviewport 功 能: 清除图形视区 用 法: void far clearviewport(void); 程序例: #include #include #include #include #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, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { printf("Error opening file\n"); } return 0; } 函数名: clock 功 能: 确定处理器时间 用 法: clock_t clock(void); 程序例: #include #include #include int main(void) { clock_t start, end; start = clock(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. delay(2000); end = clock(); printf("The time was: %f\n", (end - start) / CLK_TCK); return 0; } 函数名: closegraph 功 能: 关闭图形系统 用 法: void far closegraph(void); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 在文本窗口中清除字符到行末 用 法: void clreol(void); 程序例: #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: clrscr 功 能: 清除文本模式窗口 用 法: void clrscr(void); 程序例: #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. cprintf("The screen has been cleared!"); getch(); return 0; } 函数名: coreleft 功 能: 返回未使用内存的大小 用 法: unsigned coreleft(void); 程序例: #include #include 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()); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: cos 功 能: 余弦函数 用 法: double cos(double x); 程序例: #include #include int main(void) { double result; double x = 0.5; result = cos(x); printf("The cosine of %lf is %lf\n", x, result); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: cosh 功 能: 双曲余弦函数 用 法: dluble cosh(double x); 程序例: #include #include 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: country 功 能: 返回与国家有关的信息 用 法 : struct COUNTRY *country(int countrycode, struct country *country); 程序例: #include #include #define USA 0 int 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: cprintf 功 能: 送格式化输出至屏幕 用 法: int cprintf(const char *format[, argument, ...]); 程序例: #include 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"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* wait for a key */ getch(); return 0; } 函数名: cputs 功 能: 写字符到屏幕 用 法: void cputs(const char *string); 程序例: #include int main(void) { /* clear the screen */ clrscr(); /* create a text window */ window(10, 10, 80, 25); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 功 能: 创建一个新文件 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: int creatnew(const char *filename, int attrib); 程序例: #include #include #include #include #include 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"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. write(handle, buf, strlen(buf)); close(handle); } return 0; } 函数名: creattemp 功 能: 创建一个新文件或重写一个已存在的文件 用 法: int creattemp(const char *filename, int attrib); 程序例: #include #include #include int main(void) { int handle; char pathname[128]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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 功 能: 把日期和时间转换为字符串 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: char *ctime(const time_t *time); 程序例: #include #include 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #define ABORT 0 int c_break(void) { printf("Control-Break pressed. Program aborting ...\n"); return (ABORT); } int main(void) { ctrlbrk(c_break); for(;;) { printf("Looping... Press to quit:\n"); } return 0; } 函数大全(d 开头) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: delay 功 能: 将程序的执行暂停一段时间(毫秒) 用 法: void delay(unsigned milliseconds); 程序例: /* Emits a 440-Hz tone for 500 milliseconds */ #include int main(void) { sound(440); delay(500); nosound(); return 0; } 函数名: delline 功 能: 在文本窗口中删去一行 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: void delline(void); 程序例: #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: detectgraph 功 能: 通过检测硬件确定图形驱动程序和模式 用 法: void far detectgraph(int far *graphdriver, int far *graphmode); 程序例: #include #include #include #include /* names of the various cards supported */ char *dname[] = { "requests detection", "a CGA", "an MCGA", "an EGA", "a 64K EGA", "a monochrome EGA", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "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)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: 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 #include #include #define INTR 0X1C /* The clock tick interrupt */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. div_t x; int main(void) { x = div(10,3); printf("10 div 3 = %d remainder %d\n", x.quot, x.rem); return 0; } 函数名: doterr 功 能: 获取扩展 DOS 错误信息 用 法: int doterr(struct DOSERR *dblkp); 程序例: #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. FILE *fp; struct DOSERROR info; fp = fopen("perror.dat","r"); if (!fp) perror("Unable to open file for reading"); doterr(&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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: dostounix 功 能: 转换日期和时间为 UNIX 时间格式 用 法: long dostounix(struct date *dateptr, struct time *timeptr); 程序例: #include #include #include #include int main(void) { time_t t; struct time d_time; struct date d_date; struct tm *local; getdate(&d_date); gettime(&d_time); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 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]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* draw the polygon */ drawpoly(5, poly); /* clean up */ getch(); closegraph(); return 0; } 函数名: dup 功 能: 复制一个文件句柄 用 法: int dup(int handle); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: dup2 功 能: 复制文件句柄 用 法: int dup2(int oldhandle, int newhandle); 程序例: #include #include #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: delay 功 能: 将程序的执行暂停一段时间(毫秒) 用 法: void delay(unsigned milliseconds); 程序例: /* Emits a 440-Hz tone for 500 milliseconds */ #include int main(void) { sound(440); delay(500); nosound(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: delline 功 能: 在文本窗口中删去一行 用 法: void delline(void); 程序例: #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. delline(); getch(); return 0; } 函数名: detectgraph 功 能: 通过检测硬件确定图形驱动程序和模式 用 法: void far detectgraph(int far *graphdriver, int far *graphmode); 程序例: #include #include #include #include /* names of the various cards supported */ char *dname[] = { "requests detection", "a CGA", "an MCGA", "an EGA", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "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 */ { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 功 能: 计算两个时刻之间的时间差 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: double difftime(time_t time2, time_t time1); 程序例: #include #include #include #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #define INTR 0X1C /* The clock tick Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include div_t x; int main(void) { x = div(10,3); printf("10 div 3 = %d remainder %d\n", x.quot, x.rem); return 0; } 函数名: doterr 功 能: 获取扩展 DOS 错误信息 用 法: int doterr(struct DOSERR *dblkp); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { FILE *fp; struct DOSERROR info; fp = fopen("perror.dat","r"); if (!fp) perror("Unable to open file for reading"); doterr(&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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: dostounix 功 能: 转换日期和时间为 UNIX 时间格式 用 法: long dostounix(struct date *dateptr, struct time *timeptr); 程序例: #include #include #include #include int main(void) { time_t t; struct time d_time; struct date d_date; struct tm *local; getdate(&d_date); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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. */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: dup2 功 能: 复制文件句柄 用 法: int dup2(int oldhandle, int newhandle); 程序例: #include #include #include #include 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, Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* close duplicate handle for STDOUT */ close(oldstdout); return 0; } 函数大全(e 开头) 函数名: ecvt 功 能: 把一个浮点数转换为字符串 用 法: char ecvt(double value, int ndigit, int *decpt, int *sign); 程序例: #include #include #include int main(void) { char *string; double value; int dec, sign; int ndig = 10; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: ellipse 功 能: 画一椭圆 用 法: void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int stangle = 0, endangle = 360; int xradius = 100, yradius = 50; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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, Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include /* The clock tick interrupt */ #define INTR 0X1C 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++; /* re enable interrupts at the end of the handler */ enable(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: eof 功 能: 检测文件结束 用 法: int eof(int *handle); 程序例: #include #include #include #include #include int main(void) { int handle; char msg[] = "This is a test"; char ch; /* create a file */ handle = open("DUMMY.FIL", O_CREAT | O_RDWR, Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: 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 #include #include void main(int argc, char *argv[]) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int i; printf("Command line arguments:\n"); for (i=0; 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 #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include 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; } 函数名: ecvt 功 能: 把一个浮点数转换为字符串 用 法: char ecvt(double value, int ndigit, int *decpt, int *sign); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 功 能: 开放硬件中断 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: 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 #include #include /* The clock tick interrupt */ #define INTR 0X1C void interrupt ( *oldhandler)(void); int count=0; void interrupt handler(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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[]); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int execvpe(char *pathname, char *argv[], char *envp[]); 程序例: /* execv example */ #include #include #include void main(int argc, char *argv[]) { int i; printf("Command line arguments:\n"); for (i=0; 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); ) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: exit 功 能: 终止程序 用 法: void exit(int status); 程序例: #include #include #include 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: exp 功 能: 指数函数 用 法: double exp(double x); 程序例: #include #include 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数大全(f 开头) double fabs(double x); 返回双精度 x 的绝对值。 void far *farcalloc(unsigned long nunits,unsigned long unitsz); 堆中给含有 nu 从远 nits 个元素的,每个元素占用 unitsz 个字节长的 数组分配存贮区。 成功是返回指向新分配的内存块的指针;若存贮空间不够,返回 NULL。 unsigned long farcoreleft(void); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 返回远堆中未用存贮区的大小。 void farfree(void far *block); 释放远堆中以前所分配内存块。 void far *farmalloc(unsigned long nbytes); 从远堆分配长 nbytes 字节的内存块,返回新地址。 void far *farrealloc(void far *oldblock,unsigned long nbytes); 调整已分配的内存块的大小为 nbytes。需要的话,可把块中的内容复 制到新位置。要注意:所有的可用的 RAM 可被分配,大于 64K 的块 可被分配。 远指针用于存取被分配的块。返回重新分配的内存块的地址。若存贮 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 块重新分配失败,返回 NULL。 struct fcb { char fcb_drive; /* 0 = default, 1 = A, 2 = B */ char fcb_name[8]; /* File name */ char fcb_ext[3]; /* File extension */ short fcb_curblk; /* Current block number */ short fcb_recsize; /* Logical record size in bytes */ long fcb_filsize; /* File size in bytes */ short fcb_date; /* Date file was last written */ char fcb_resv[10]; /* Reserved for DOS */ char fcb_currec; /* Current record in block */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. long fcb_random; /* Random record number */ }; int fclose(FILE *stream); 关闭一个流。 成功返回 0;失败是返回 EOF。 int fcloseall(void); 关闭所有打开的流,除了 stdin,stdout,stdprn,stderr 和 stdaux。 char *fcvt(double value,int ndig,int *dec,int *sign); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 把浮点数转换成字符串,把浮点数 value 转换成长度为 ndig 的以空字 符终结的字符串,返回一个指向这个字符串的指针,相对于串的开始 处, 小数点的位置,由 dec 间接存贮,dec 若为负值,表示小数点在返回 的字符串的左边。返回的字符串本身不带小数点。如果 value 的符号 为负,由 sign 指向的值非零;否则它是零。 FILE *fdopen(int handle,char *type); 把流与一个文件描述字相联系地打开。fdopen 使流 stream 与一个从 creat,dup,dup2 或 open 得到的文件描述字相联系。流的类型 type 必须 与打开文件描述字 handle 的模式相匹配。 类型字符串 type 可以是下列值之一: r,打开用于只读; w,创建用于写; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. a,打开用于写在原有内容后面,文件不存在时创建用于写; r+,打开已存在的文件用于更新(读和写); a+,添加打开,文件不存在时创建,在末尾更新。成功时返回新打开 的流。出错时返回 NULL。 int feof(FILE *stream); 测试所给 stream 的文件尾标记的宏。 若检测到文件尾标记 EOF 或 Ctrl-z 返回非零值;否则,返回 0。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int ferror(FILE *stream); 测试给定流读写错误的宏。 若检测到给定流上的错误返回非 0 值。 struct ffblk { char ff_reserved[21]; char ff_attrib; unsigned ff_ftime; unsigned ff_fdate; long ff_fsize; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char ff_name[13]; }; int fflush(FILE *stream); 清除输入流的缓冲区,使它仍然打开,并把输出流的缓冲区的内容写 入它所联系的文件中。成功时返回 0,出错时返回 EOF。 int fgetc(FILE *stream); 从流中读取下一个字符。 成功是返回输入流中的下一个字符;至文件结束或出错时返回 EOF。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int fgetchar(void); 从标准输入流中读取字符,时定义为 getc(stdin)的宏。 返回输入流 stdin 中的下一个字符,它已被转换成为无符号扩展的整 形值。遇到出错或文件结束时返回 EOF。 int fgetpos(FILE stream,fpos_t *pos); 取得当前文件指针。 fgetpos 把与 stream 相联系的文件指针的位置保存在 pos 所指的地方。 其中,类型 fpos_t 在 stdio.h 中定义为 typeddf long fpos_t; 成功时返回 0;失败时,返回非 0 值。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char *fgets(char *s,int n,FILE *stream); 成行读。 从流 stream 读 n-1 个字符,或遇换行符'\n'为止,把读出的内容,存入 s 中。与 gets 不同,fgets 在 s 未尾保留换行符。一个空字节被加入到 s,用来标记串的结束。 成功时返回 s 所指的字符串;在出错或遇到文件结束时返回 NULL。 long filelength(int handle); 返回与 handle 相联系的文件长度的字节数,出错时返回-1L。 int fileno(FILE *stream); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 返回与 stream 相联系的文件描述字。 int fileno(FILE *stream); 返回与 stream 相联系的文件描述字。 enum fill_patterns { /* Fill patterns for get/setfillstyle */ 0 EMPTY_FILL, /* fills area in background color */ 1 SOLID_FILL, /* fills area in solid fill color */ 2 LINE_FILL, /* --- fill */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 3 LTSLASH_FILL, /* /// fill */ 4 SLASH_FILL, /* /// fill with thick lines */ 5 BKSLASH_FILL, /* \\\ fill with thick lines */ 6 LTBKSLASH_FILL, /* \\\ fill */ 7 HATCH_FILL, /* light hatch fill */ 8 XHATCH_FILL, /* heavy cross hatch fill */ 9 INTERLEAVE_FILL, /* interleaving line fill */ 10 WIDE_DOT_FILL, /* Widely spaced dot fill */ 11 CLOSE_DOT_FILL, /* Closely spaced dot fill */ 12 USER_FILL /* user defined fill */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void far fillellipse(int x,int y,int xradius,int yradius); 画一填充椭圆。 以(x,y)为中心,以 xradius 和 yradius 为水平和垂直半轴,用当前颜色 画边线,画一椭圆,用当前填充颜色和填充方式填充。 int findfirst(const char *pathname,struct ffblk *ffblk,int attrib); 搜索磁盘目录。开始通过 DOS 系统调用 0x4E 对磁盘目录进行搜索。 pathname 中可含有要找的盘区路径文件名。 文件名中可含有通配符(如*或?)。如果找到了匹配的文件,把文件 目录信息填入 ffblk 结构。 attrib 是 MS-DOS 的文件属性字节,用于在搜索过程中选择符合条件 的文件。 attrib 可以是在 dos.h 中定义的下列可取值之一:FA_RDONLY,只 读 ;FA_HIDDEN 隐 藏 ;FA_SYSTEM 系 统 文 件 ;FA_LABEL 卷 标;FA_DIREC,目录;FA_ARCH,档案.可参考>. 结构 ffblk 的格式如下: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. struct ffblk{ char ff_reserved[21}; /*由 DOS 保留*/ char ff_attrib; /*属性查找*/ int ff_ftime; /*文件时间*/ int f_fdate; /*文件日期*/ long ff_fsize; /*文件大小*/ char ff_name[13}; /*找到的文件名*/ 在成功的地找到了与搜索路径 pathname 相匹配的文件名后返回 0;否 则返回-1。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int findnext(xtruct ffblk *ffblk);继续按 findfirst 的 pathname 搜索磁盘目 录。 成功地找到了与搜索路径 pathname 相匹配的后续文件名后返回 0;否 则返回-1。 void far floodfill(int x,int y, int border); 填充一个有界的区域。 double floor(double x); 返回〈=x 的用双精度浮点数表示的最大整数。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int flushall(void); 清除所有缓冲区。 清除所有与打开输入流相联系的缓冲区,并把所有和打开输出流相联 系的缓冲区的内容写入到各自的文件中,跟在 flushall 后面的读操作, 从输入文件中读新数据到缓冲区中。 返回一个表示打开输入流和输出流总数的整数。 couble fmod (double x, double y); 返回 x 对 y 的模,即 x/y 的余数。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void fnmerge(char *path,const char *drive,const char *dir,const char *name,const char *ext); 由给定的盘区路径文件名扩展名等组成部分建立 path。 如果 drive 给出 X:,dir 给出\DIR\SUBDIR\,name 给出 NAME,和.ext 给出.EXT,根据给定的组成部分,可建立一个完整的盘区路径文件名 path 为: X:\DIR\CUBDIR\NAME.EXT int fnsplit(const char *path,char *drive,char *cir,char *name,char *ext); 可把由 path 给出的盘区路径文件名扩展名分解成为各自的组成部分. 返回一整型数. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. FILE*fopen (const char *filemane,const char *mode); 打开文件 filemane 返回相联系的流;出错返回 NULL。 mode 字符串的可取值有:r,打开用于读;w,打开用于写;a,打开 用于在原有内容之后写;r+,打开已存在的文件用于更新(读和写); w+创建新文件用于更新;a+,打开用于在原有内容之后更新,若文 件不存在就创建。 unsigned FP_OFF(void far *farptr); 返回远指针 farptr 的地址偏移量。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int fprintf(FILE *stream,const char *format[,argument,...]); 照原样抄写格式串 format 的内容到流 stream 中,每遇到一个%,就按 规定的格式,依次输出一个表达式 argument 的值到流 stream 中,返 回写的字符个数。出错时返回 EOF。 FILE *stream; void main( void ) { long l; float fp; char s[81]; char c; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. stream = fopen( "fscanf.txt", "w+" ); if( stream == NULL ) printf( "The file fscanf.out was not opened\n" ); else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' ); /* Set pointer to beginning of file: */ fseek( stream, 0L, SEEK_SET ); /* Read data back from file: */ fscanf( stream, "%s", s ); fscanf( stream, "%ld", &l ); fscanf( stream, "%f", fscanf( stream, "%c", &c );/* Output data read: */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf( "%s\n", s ); printf( "%ld\n", l ); printf( "%f\n", fp ); printf( "%c\n", c ); fclose( stream ); } } int fputc(int c,FILE *stream); 写一个字符到流中。 成功时返回所写的字符,失败或出错时返回 EOF。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int fputchar(int c); 送一个字符到屏幕。 等价于 fputc(c,stdout);成功时返回所写的字符,失败或出错时返回 EOF。 int fputs(const char *s,FILE *stream); 把 s 所指的以空字符终结的字符串送入流中,不加换行符'\n',不拷贝 串结束符'\0'。 成功时返回最后的字符,出错时返回 EOF。 size_t fread(void *ptr,size_t size,size_t n,FILE *stream); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 从所给的输入流 stream 中读取的 n 项数据,每一项数据长度为 size 字节,到由 ptr 所指的块中。 成功时返回所读的数据项数(不是字节数);遇到文件结束或出错时 可能返回 0。 void free(void *block); 释放先前分配的首地址为 block 的内存块。 int freemem(unsigned segx); 释放先前由 allocmem 分配的段地址为 segx 的内存块。 FILE *freopen(const char *filename,const char *mode,FILE *stream); 用 filename 所指定的文件代替打开的流 stream 所指定的文件。返回 stream,出错时返回 NULL。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. double frexp(double x int *exponent); 将 x 分解成尾数合指数。 将给出的双精度数 x 分解成为在 0.5 和 1 之间尾数 m 和整形的指数 n, 使原来的 x=m*(2 的 n 次方),将整形指数 n 存入 exponent 所指的地 址中,返回尾数 m。 int fscan(FILE *stream,char *format,address,...); fscanf 扫描输入字段,从流 stream 读入,每读入一个字段,就依次按 照由 format 所指的格式串中取一个从%开始的格式进行格式化之后 存入对应的一个地址 address 中。 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 返回成功地扫描,转换和存贮输入字段的个数,遇文件结束返回 EOF。 FILE *stream; void main( void ) { long l; float fp; char s[81]; char c; stream = fopen( "fscanf.txt", "w+" ); if( stream == NULL ) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf( "The file fscanf.out was not opened\n" ); else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' ); /* Set pointer to beginning of file: */ fseek( stream, 0L, SEEK_SET ); /* Read data back from file: */ fscanf( stream, "%s", s ); fscanf( stream, "%ld", &l ); fscanf( stream, "%f", fscanf( stream, "%c", &c );/* Output data read: */ printf( "%s\n", s ); printf( "%ld\n", l ); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf( "%f\n", fp ); printf( "%c\n", c ); fclose( stream ); } } int fseek(FILE *stream,long offset,int whence); 在流上重新定位文件结构的位置。fseek 设置与流 stream 相联系的文 件指针到新的位置,新位置与 whence 给定的文件位置的距离为 offset 字节。 whence 的取值必须是 0,1 或 2 中的一个,分别代表在 stdio.h 中定义 的三个符号常量: 0 是 SEEK_SET,是文件开始位置; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 1 是 SEEK_CUR,是当前的指针位置; 2 时 SEEK_END,是文件末尾。 调用了 fseek 之后,在更新的文件位置上,下一个操作可以是输入; 也可以是输出。成功地移动了指针时,fseek 返回 0;出错或失败时返 回非 0 值。 例: #include FILE *stream; void main( void ) { long l; float fp; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char s[81]; char c; stream = fopen( "fscanf.txt", "w+" ); if( stream == NULL ) printf( "The file fscanf.out was not opened\n" ); else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' ); /* Set pointer to beginning of file: */ fseek( stream, 0L, SEEK_SET ); /* Read data back from file: */ fscanf( stream, "%s", s ); fscanf( stream, "%ld", &l ); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. fscanf( stream, "%f", fscanf( stream, "%c", &c );/* Output data read: */ printf( "%s\n", s ); printf( "%ld\n", l ); printf( "%f\n", fp ); printf( "%c\n", c ); fclose( stream ); ) } int fsetpos(FILE *stream,const fpos_t *pos); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. fsetpos 把与 stream 相联系的文件指针置于新的位置。这个新的位置 是先前对此流调用 fgetpos 所得的值。 fsetpos 清除 stream 所指文件的文件结束标志,并消除对该文件的所 有 ungetc 操作。在调用 fsetpos 之后,文件的下一操作可以是输入或 输出。 调用 fsetpos 成功时返回 0;若失败,返回非 0 值。 int fstat(int handle,struct stat *statbuf); 把与 handle 相联系的打开文件或目录的信息存入到 statbuf 所指的定 义在 sys\stat.h 中的 stat 结构中。成功时返回 0;出错时返回-1。 long int ftell(FILE *stream); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 返回流 stream 中当前文件指针位置。偏移量是文件开始算起的字节 数。出错时返回-1L,是长整数的-1 值。 void ftime(struct timeb *buf); 把当前时间存入到在 sys\timeb.h 中定义的 timeb 结构中。 size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream); fwrite 从指针 ptr 开始把 n 个数据项添加到给定输出流 stream,每个数 据项的长度为 size 个字节。 成功是返回确切的数据项数(不是字节数);出错时返回短(short) 计数值。可能是 0。 函数大全(g 开头) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: gcvt 功 能: 把浮点数转换成字符串 用 法: char *gcvt(double value, int ndigit, char *buf); 程序例: #include #include int main(void) { char str[25]; double num; int sig = 5; /* significant digits */ /* a regular number */ num = 9.876; gcvt(num, sig, str); printf("string = %s\n", str); /* a negative number */ num = -123.4567; gcvt(num, sig, str); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("string = %s\n", str); /* scientific notation */ num = 0.678e5; gcvt(num, sig, str); printf("string = %s\n", str); return(0); } 函数名: geninterrupt 功 能: 产生一个软中断 用 法: void geninterrupt(int intr_num); 程序例: #include #include /* function prototype */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void writechar(char ch); int main(void) { clrscr(); gotoxy(80,25); writechar('*'); getch(); return 0; } /* outputs a character at the current cursor position using the video BIOS to avoid the scrolling of the screen when writing to location (80,25). */ void writechar(char ch) { struct text_info ti; /* grab current text settings */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. gettextinfo(&ti); /* interrupt 0x10 sub-function 9 */ _AH = 9; /* character to be output */ _AL = ch; _BH = 0; /* video page */ _BL = ti.attribute; /* video attribute */ _CX = 1; /* repetition factor */ geninterrupt(0x10); /* output the char */ } 函数名: getarccoords 功 能: 取得最后一次调用 arc 的坐标 用 法: void far getarccoords(struct arccoordstype far *arccoords); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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, Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. arcinfo.yend, estr); /* clean up */ getch(); closegraph(); return 0; } 函数名: getaspectratio 功 能: 返回当前图形模式的纵横比 用 法: void far getaspectratio(int far *xasp, int far *yasp); 程序例: #include #include #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { /* 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: getbkcolor 功 能: 返回当前背景颜色 用 法: int far getbkcolor(void); 程序例: #include #include #include #include #include int main(void) { /* request auto detection */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getc(): 调用方式:int getc(FILE *stream) 它返回指定输入流 stream 的当前位置的下一个字符,并增加文件的位 置指示器. 函数名: getc 功 能: 从流中取字符 用 法: int getc(FILE *stream); 程序例: #include int main(void) { char ch; printf("Input a character:"); /* read a character from the standard input stream */ ch = getc(stdin); printf("The character input was: '%c'\n", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. ch); return 0; } 函数名: getcbrk 功 能: 获取 Control_break 设置 用 法: int getcbrk(void); 程序例: #include #include int main(void) { if (getcbrk()) printf("Cntrl-brk flag is on\n"); else printf("Cntrl-brk flag is off\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: getch 功 能: 从控制台无回显地取一个字符 用 法: int getch(void); 程序例: #include #include int main(void) { char ch; printf("Input a character:"); ch = getche(); printf("\nYou input a '%c'\n", ch); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getchar 功 能: 从 stdin 流中读字符 用 法: int getchar(void); 程序例: #include int main(void) { int c; /* Note that getchar reads from stdin and is line buffered; this means it will not return until you press ENTER. */ while ((c = getchar()) != '\n') printf("%c", c); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: getche 功 能: 从控制台取字符(带回显) 用 法: int getche(void); 程序例: #include #include int main(void) { char ch; printf("Input a character:"); ch = getche(); printf("\nYou input a '%c'\n", ch); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getcolor 功 能: 返回当前画线颜色 用 法: int far getcolor(void); 程序例: #include #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int color, midx, midy; char colname[35]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include char *current_directory(char *path) { strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ path[0] = 'A' + getdisk(); /* replace X with current drive letter */ getcurdir(0, path+3); /* fill rest of string with current directory */ return(path); } int main(void) { char curdir[MAXPATH]; current_directory(curdir); printf("The current directory is %s\n", curdir); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getcwd 功 能: 取当前工作目录 用 法: char *getcwd(char *buf, int n); 程序例: #include #include int main(void) { char buffer[MAXPATH]; getcwd(buffer, MAXPATH); printf("The current directory is: %s\n", buffer); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getdate 功 能: 取 DOS 日期 用 法: void getdate(struct *dateblk); 程序例: #include #include int main(void) { struct date d; getdate(&d); printf("The current year is: %d\n", d.da_year); printf("The current day is: %d\n", d.da_day); printf("The current month is: %d\n", d.da_mon); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getdefaultpalette 功 能: 返回调色板定义结构 用 法: struct palettetype *far getdefaultpalette(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int i; /* structure for returning palette copy */ struct palettetype far *pal=(void *) 0; /* initialize graphics and local variables */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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++) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("colors[%d] = %d\n", i, pal->colors[i]); getch(); } /* clean up */ getch(); closegraph(); return 0; } 函数名: getdisk 功 能: 取当前磁盘驱动器号 用 法: int getdisk(void); 程序例: #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { int disk; disk = getdisk() + 'A'; printf("The current drive is: %c\n", disk); return 0; } 函数名: getdrivername 功 能: 返回指向包含当前图形驱动程序名字的字符串指针 用 法: char *getdrivename(void); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getdta 功 能: 取磁盘传输地址 用 法: char far *getdta(void); 程序例: #include #include int main(void) { char far *dta; dta = getdta(); printf("The current disk transfer \ address is: %Fp\n", dta); return 0; } 函数名: getenv 功 能: 从环境中取字符串 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: char *getenv(char *envvar); 程序例: #include #include int main(void) { char *s; s=getenv("COMSPEC"); /* get the comspec environment parameter */ printf("Command processor: %s\n",s); /* display comspec parameter */ return 0; } 函数名: getfat, getfatd 功 能: 取文件分配表信息 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: void getfat(int drive, struct fatinfo *fatblkp); 程序例: #include #include int main(void) { struct fatinfo diskinfo; int flag = 0; printf("Please insert disk in drive A\n"); getchar(); getfat(1, &diskinfo); /* get drive information */ printf("\nDrive A: is "); switch((unsigned char) diskinfo.fi_fatid) { case 0xFD: printf("360K low density\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: getfillpattern 功 能: 将用户定义的填充模式拷贝到内存中 用 法: void far getfillpattern(char far *upattern); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int maxx, maxy; char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x25, 0x27, 0x04, 0x04}; /* initialize graphics and local variables */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getfillsettings 功 能: 取得有关当前填充模式和填充颜色的信息 用 法: void far getfillsettings(struct fillsettingstype far *fillinfo); 程序例: #include #include #include #include / the names of the fill styles supported */ char *fname[] = { "EMPTY_FILL", "SOLID_FILL", "LINE_FILL", "LTSLASH_FILL", "SLASH_FILL", "BKSLASH_FILL", "LTBKSLASH_FILL", "HATCH_FILL", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "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 */ { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: getftime 功 能: 取文件日期和时间 用 法: int getftime(int handle, struct ftime *ftimep); 程序例: #include #include int main(void) { FILE *stream; struct ftime ft; if ((stream = fopen("TEST.$$$", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "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 功 能: 返回当前图形模式 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: int far getgraphmode(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, mode; char numname[80], modename[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); /* an error occurred */ if (errorcode != grOk) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, numname); outtextxy(midx, midy+2*textheight("W"), modename); /* clean up */ getch(); closegraph(); return 0; } 函数名: getftime 功 能: 取文件日期和时间 用 法: int getftime(int handle, struct ftime *ftimep); 程序例: #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getgraphmode 功 能: 返回当前图形模式 用 法: int far getgraphmode(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, mode; char numname[80], modename[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include #include void save_screen(void far *buf[4]); void restore_screen(void far *buf[4]); int maxx, maxy; int main(void) { int gdriver=DETECT, gmode, errorcode; void far *ptr[4]; /* auto-detect the graphics driver and mode */ initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); /* check for any errors */ if (errorcode != grOk) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. yend += yincr + 1; } } void save_screen(void far *buf[4]) { unsigned size; int ystart=0, yend, yincr, block; yincr = (maxy+1) / 4; yend = yincr; size = imagesize(0, ystart, maxx, yend); /* get byte size of image */ for (block=0; block<=3; block++) { if ((buf[block] = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen().\n"); exit(1); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; } } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getlinesettings 功 能: 取当前线型、模式和宽度 用 法: void far getlinesettings(struct linesettingstype far *lininfo): 程序例: #include #include #include #include /* the names of the line styles supported */ char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" }; int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* get information about current line settings */ getlinesettings(&lineinfo); /* convert line information into strings */ sprintf(lstyle, "%s is the line style.", lname[lineinfo.linestyle]); sprintf(lpattern, "0x%X is the user-defined line pattern.", lineinfo.upattern); sprintf(lwidth, "%d is the line thickness.", lineinfo.thickness); /* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, lstyle); outtextxy(midx, midy+2*textheight("W"), lpattern); outtextxy(midx, midy+4*textheight("W"), lwidth); /* clean up */ getch(); closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: getmaxcolor 功 能: 返回可以传给函数 setcolor 的最大颜色值 用 法: int far getmaxcolor(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; char colstr[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: getmaxx 功 能: 返回屏幕的最大 x 坐标 用 法: int far getmaxx(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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()); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; char xrange[80], yrange[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include int main(void) { /* request autodetection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, mode; char numname[80], modename[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: getmoderange 功 能: 取给定图形驱动程序的模式范围 用 法: void far getmoderange(int graphdriver, int far *lomode, int far *himode); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int low, high; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. sprintf(mrange, "This driver supports modes %d..%d", low, high); /* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, mrange); /* clean up */ getch(); closegraph(); return 0; } 函数名: getpalette 功 能: 返回有关当前调色板的信息 用 法: void far getpalette(struct palettetype far *palette); 程序例: #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; struct palettetype pal; char psize[80], pval[20]; int i, ht; int y = 10; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); /* an error occurred */ if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { char *password; password = getpass("Input a password:"); cprintf("The password is: %s\r\n", password); return 0; } 函数名: getpixel 功 能: 取得指定像素的颜色 用 法: int far getpixel(int x, int y); 程序例: #include #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); /* terminate with an error code */ exit(1); } maxx = getmaxx() + 1; maxy = getmaxy() + 1; maxcolor = getmaxcolor() + 1; while (!kbhit()) { /* seed the random number generator */ seed = random(32767); srand(seed); for (i=0; i { x = random(maxx); y = random(maxy); color = random(maxcolor); putpixel(x, y, color); } delay(DELAY_TIME); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. srand(seed); for (i=0; i { x = random(maxx); y = random(maxy); color = random(maxcolor); if (color == getpixel) 函数名: gets 功 能: 从流中取一字符串 用 法: char *gets(char *string); 程序例: #include int main(void) { char string[80]; printf("Input a string:"); gets(string); printf("The string input was: %s\n", string); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: gettext 功 能: 将文本方式屏幕上的文本拷贝到存储区 用 法: int gettext(int left, int top, int right, int bottom, void *destin); 程序例: #include char buffer[4096]; int main(void) { int i; clrscr(); for (i = 0; i <= 20; i++) cprintf("Line #%d\r\n", i); gettext(1, 1, 80, 25, buffer); gotoxy(1, 25); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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 功 能: 返回有关当前图形文本字体的信息 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: void far gettextsettings(struct textsettingstype far *textinfo); 程序例: #include #include #include #include /* the names of the fonts supported */ char *font[] = { "DEFAULT_FONT", "TRIPLEX_FONT", "SMALL_FONT", "SANS_SERIF_FONT", "GOTHIC_FONT" }; /* the names of the text directions supported */ char *dir[] = { "HORIZ_DIR", "VERT_DIR" }; /* horizontal text justifications supported */ char *hjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" }; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* vertical text justifications supported */ char *vjust[] = { "BOTTOM_TEXT", "CENTER_TEXT", "TOP_TEXT" }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; struct textsettingstype textinfo; int midx, midy, ht; char fontstr[80], dirstr[80], sizestr[80]; char hjuststr[80], vjuststr[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* get information about current text settings */ gettextsettings(&textinfo); /* convert text information into strings */ sprintf(fontstr, "%s is the text style.", font[textinfo.font]); sprintf(dirstr, "%s is the text direction.", dir[textinfo.direction]); sprintf(sizestr, "%d is the text size.", textinfo.charsize); sprintf(hjuststr, "%s is the horizontal justification.", hjust[textinfo.horiz]); sprintf(vjuststr, "%s is the vertical justification.", vjust[textinfo.vert]); /* display the information */ ht = textheight("W"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, fontstr); outtextxy(midx, midy+2*ht, dirstr); outtextxy(midx, midy+4*ht, sizestr); outtextxy(midx, midy+6*ht, hjuststr); outtextxy(midx, midy+8*ht, vjuststr); /* clean up */ getch(); closegraph(); return 0; } 函数名: gettime 功 能: 取得系统时间 用 法: void gettime(struct time *timep); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { struct time t; gettime(&t); printf("The current time is: %2d:%02d:%02d.%02d\n", t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund); return 0; } 函数名: getvect 功 能: 取得中断向量入口 用 法: void interrupt(*getvect(int intr_num)); 程序例: #include #include void interrupt get_out(); /* interrupt prototype */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void interrupt (*oldfunc)(); /* interrupt function pointer */ int looping = 1; int main(void) { puts("Press to terminate"); /* save the old interrupt */ oldfunc = getvect(5); /* install interrupt handler */ setvect(5,get_out); /* do nothing */ while (looping); /* restore to original interrupt routine */ setvect(5,oldfunc); puts("Success"); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } void interrupt get_out() { looping = 0; /* change global variable to get out of loop */ } 函数名: getverify 功 能: 返回 DOS 校验标志状态 用 法: int getverify(void); 程序例: #include #include int main(void) { if (getverify()) printf("DOS verify flag is on\n"); else printf("DOS verify flag is off\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: getviewsetting 功 能: 返回有关当前视区的信息 用 法: void far getviewsettings(struct viewporttype far *viewport); 程序例: #include #include #include #include char *clip[] = { "OFF", "ON" }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; struct viewporttype viewinfo; int midx, midy, ht; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char topstr[80], botstr[80], clipstr[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* get information about current viewport */ getviewsettings(&viewinfo); /* convert text information into strings */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. sprintf(topstr, "(%d, %d) is the upper left viewport corner.", viewinfo.left, viewinfo.top); sprintf(botstr, "(%d, %d) is the lower right viewport corner.", viewinfo.right, viewinfo.bottom); sprintf(clipstr, "Clipping is turned %s.", clip[viewinfo.clip]); /* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); ht = textheight("W"); outtextxy(midx, midy, topstr); outtextxy(midx, midy+2*ht, botstr); outtextxy(midx, midy+4*ht, clipstr); /* clean up */ getch(); closegraph(); return 0; } 函数名: getw Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 从流中取一整数 用 法: int getw(FILE *strem); 程序例: #include #include #define FNAME "test.$$$" int main(void) { FILE *fp; int word; /* place the word in a file */ fp = fopen(FNAME, "wb"); if (fp == NULL) { printf("Error opening file %s\n", FNAME); exit(1); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. word = 94; putw(word,fp); if (ferror(fp)) printf("Error writing to file\n"); else printf("Successful write\n"); fclose(fp); /* reopen the file */ fp = fopen(FNAME, "rb"); if (fp == NULL) { printf("Error opening file %s\n", FNAME); exit(1); } /* extract the word */ word = getw(fp); if (ferror(fp)) printf("Error reading file\n"); else printf("Successful read: word = %d\n", word); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ fclose(fp); unlink(FNAME); return 0; } 函数名: getx 功 能: 返回当前图形位置的 x 坐标 用 法: int far getx(void); 程序例: #include #include #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* move to the screen center point */ moveto(getmaxx() / 2, getmaxy() / 2); /* create a message string */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. sprintf(msg, "<-(%d, %d) is the here.", getx(), gety()); /* display the message */ outtext(msg); /* clean up */ getch(); closegraph(); return 0; } 函数名: gety 功 能: 返回当前图形位置的 y 坐标 用 法: int far gety(void); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* move to the screen center point */ moveto(getmaxx() / 2, getmaxy() / 2); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* create a message string */ sprintf(msg, "<-(%d, %d) is the here.", getx(), gety()); /* display the message */ outtext(msg); /* clean up */ getch(); closegraph(); return 0; } 函数名: gmtime 功 能: 把日期和时间转换为格林尼治标准时间(GMT) 用 法: struct tm *gmtime(long *clock); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include /* Pacific Standard Time & Daylight Savings */ char *tzstr = "TZ=PST8PDT"; int main(void) { time_t t; struct tm *gmt, *area; putenv(tzstr); tzset(); t = time(NULL); area = localtime(&t); printf("Local time is: %s", asctime(area)); gmt = gmtime(&t); printf("GMT is: %s", asctime(gmt)); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: gotoxy 功 能: 在文本窗口中设置光标 用 法: void gotoxy(int x, int y); 程序例: #include int main(void) { clrscr(); gotoxy(35, 12); cprintf("Hello world"); getch(); return 0; } 函数名: gotoxy 功 能: 在文本窗口中设置光标 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: void gotoxy(int x, int y); 程序例: #include int main(void) { clrscr(); gotoxy(35, 12); cprintf("Hello world"); getch(); return 0; } 函数名: graphdefaults 功 能: 将所有图形设置复位为它们的缺省值 用 法: void far graphdefaults(void); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "c:\\bor\\Borland\\bgi"); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. maxx = getmaxx(); maxy = getmaxy(); /* output line with non-default settings */ setlinestyle(DOTTED_LINE, 0, 3); line(0, 0, maxx, maxy); outtextxy(maxx/2, maxy/3, "Before default values are restored."); getch(); /* restore default values for everything */ graphdefaults(); /* clear the screen */ cleardevice(); /* output line with default settings */ line(0, 0, maxx, maxy); outtextxy(maxx/2, maxy/3, "After restoring default values."); /* clean up */ getch(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. closegraph(); return 0; } 函数名: grapherrormsg 功 能: 返回一个错误信息串的指针 用 法: char *far grapherrormsg(int errorcode); 程序例: #include #include #include #include #define NONSENSE -50 int main(void) { /* FORCE AN ERROR TO OCCUR */ int gdriver = NONSENSE, gmode, errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* initialize graphics mode */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); /* if an error occurred, then output a */ /* descriptive error message. */ if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* draw a line */ line(0, 0, getmaxx(), getmaxy()); /* clean up */ getch(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. closegraph(); return 0; } 函数名: graphresult 功 能: 返回最后一次不成功的图形操作的错误代码 用 法: int far graphresult(void); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; /* initialize graphics and local variables */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* draw a line */ line(0, 0, getmaxx(), getmaxy()); /* clean up */ getch(); closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: _graphfreemem 功 能: 用户可修改的图形存储区释放函数 用 法: void far _graphfreemem(void far *ptr, unsigned size); 程序例: #include #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; /* clear the text screen */ clrscr(); printf("Press any key to initialize graphics mode:"); getch(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. clrscr(); /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* display a message */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, "Press any key to exit graphics mode:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } /* called by the graphics kernel to allocate memory */ void far * far _graphgetmem(unsigned size) { printf("_graphgetmem called to allocate %d bytes.\n", size); printf("hit any key:"); getch(); printf("\n"); /* allocate memory from far heap */ return farmalloc(size); } /* called by the graphics kernel to free memory */ void far _graphfreemem(void far *ptr, unsigned size) { printf("_graphfreemem called to free %d bytes.\n", size); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("hit any key:"); getch(); printf("\n"); /* free ptr from far heap */ farfree(ptr); } 函数名: _graphgetmem 功 能: 用户可修改的图形存储区分配函数 用 法: void far *far _graphgetmem(unsigned size); 程序例: #include #include #include #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* request autodetection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; /* clear the text screen */ clrscr(); printf("Press any key to initialize graphics mode:"); getch(); clrscr(); /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. midx = getmaxx() / 2; midy = getmaxy() / 2; /* display a message */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, "Press any key to exit graphics mode:"); /* clean up */ getch(); closegraph(); return 0; } /* called by the graphics kernel to allocate memory */ void far * far _graphgetmem(unsigned size) { printf("_graphgetmem called to allocate %d bytes.\n", size); printf("hit any key:"); getch(); printf("\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* allocate memory from far heap */ return farmalloc(size); } /* called by the graphics kernel to free memory */ void far _graphfreemem(void far *ptr, unsigned size) { printf("_graphfreemem called to free %d bytes.\n", size); printf("hit any key:"); getch(); printf("\n"); /* free ptr from far heap */ farfree(ptr); } 函数大全(h 开头) 函数名: harderr 功 能: 建立一个硬件错误处理程序 用 法: void harderr(int (*fptr)()); 程序例: /*This program will trap disk errors and prompt Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. the user for action. Try running it with no disk in drive A: to invoke its functions.*/ #include #include #include #define IGNORE 0 #define RETRY 1 #define ABORT 2 int buf[500]; /*define the error messages for trapping disk problems*/ static char *err_msg[] = { "write protect", "unknown unit", "drive not ready", "unknown command", "data error (CRC)", "bad request", "seek error", "unknown media type", "sector not found", "printer out of paper", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "write fault", "read fault", "general failure", "reserved", "reserved", "invalid disk change" }; error_win(char *msg) { int retval; cputs(msg); /*prompt for user to press a key to abort, retry, ignore*/ while(1) { retval= getch(); if (retval == 'a' || retval == 'A') { retval = ABORT; break; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } if (retval == 'r' || retval == 'R') { retval = RETRY; break; } if (retval == 'i' || retval == 'I') { retval = IGNORE; break; } } return(retval); } /*pragma warn -par reduces warnings which occur due to the non use of the parameters errval, bp and si to the handler.*/ #pragma warn -par int handler(int errval,int ax,int bp,int si) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { static char msg[80]; unsigned di; int drive; int errorno; di= _DI; /*if this is not a disk error then it was another device having trouble*/ if (ax < 0) { /* report the error */ error_win("Device error"); /* and return to the program directly requesting abort */ hardretn(ABORT); } /* otherwise it was a disk error */ drive = ax & 0x00FF; errorno = di & 0x00FF; /* report which error it was */ sprintf(msg, "Error: %s on drive %c\r\nA)bort, R)etry, I)gnore: ", err_msg[errorno], 'A' + drive); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* return to the program via dos interrupt 0x23 with abort, retry, or ignore as input by the user. */ hardresume(error_win(msg)); return ABORT; } #pragma warn +par int main(void) { /* install our handler on the hardware problem interrupt */ harderr(handler); clrscr(); printf("Make sure there is no disk in drive A:\n"); printf("Press any key ....\n"); getch(); printf("Trying to access drive A:\n"); printf("fopen returned %p\n",fopen("A:temp.dat", "w")); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: hardresume 功 能: 硬件错误处理函数 用 法: void hardresume(int rescode); 程序例: /* This program will trap disk errors and prompt the user for action. */ /* Try running it with no disk in drive A: to invoke its functions */ #include #include #include #define IGNORE 0 #define RETRY 1 #define ABORT 2 int buf[500]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* define the error messages for trapping disk problems */ static char *err_msg[] = { "write protect", "unknown unit", "drive not ready", "unknown command", "data error (CRC)", "bad request", "seek error", "unknown media type", "sector not found", "printer out of paper", "write fault", "read fault", "general failure", "reserved", "reserved", "invalid disk change" }; error_win(char *msg) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { int retval; cputs(msg); /* prompt for user to press a key to abort, retry, ignore */ while(1) { retval= getch(); if (retval == 'a' || retval == 'A') { retval = ABORT; break; } if (retval == 'r' || retval == 'R') { retval = RETRY; break; } if (retval == 'i' || retval == 'I') { retval = IGNORE; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. break; } } return(retval); } /* pragma warn -par reduces warnings which occur due to the non use */ /* of the parameters errval, bp and si to the handler. */ #pragma warn -par int handler(int errval,int ax,int bp,int si) { static char msg[80]; unsigned di; int drive; int errorno; di= _DI; /* if this is not a disk error then it was another device having trouble */ if (ax < 0) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { /* report the error */ error_win("Device error"); /* and return to the program directly requesting abort */ hardretn(ABORT); } /* otherwise it was a disk error */ drive = ax & 0x00FF; errorno = di & 0x00FF; /* report which error it was */ sprintf(msg, "Error: %s on drive %c\r\nA)bort, R)etry, I)gnore: ", err_msg[errorno], 'A' + drive); /* return to the program via dos interrupt 0x23 with abort, retry */ /* or ignore as input by the user. */ hardresume(error_win(msg)); return ABORT; } #pragma warn +par int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* install our handler on the hardware problem interrupt */ harderr(handler); clrscr(); printf("Make sure there is no disk in drive A:\n"); printf("Press any key ....\n"); getch(); printf("Trying to access drive A:\n"); printf("fopen returned %p\n",fopen("A:temp.dat", "w")); return 0; } 函数名: highvideo 功 能: 选择高亮度文本字符 用 法: void highvideo(void); 程序例: #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. clrscr(); lowvideo(); cprintf("Low Intensity text\r\n"); highvideo(); gotoxy(1,2); cprintf("High Intensity Text\r\n"); return 0; } 函数名: hypot 功 能: 计算直角三角形的斜边长 用 法: double hypot(double x, double y); 程序例: #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { double result; double x = 3.0; double y = 4.0; result = hypot(x, y); printf("The hypotenuse is: %lf\n", result); return 0; } 函数大全( i 开头) 函数名: imagesize 功 能: 返回保存位图像所需的字节数 用 法: unsigned far imagesize(int left, int top, int right, int bottom); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #define ARROW_SIZE 10 void draw_arrow(int x, int y); int main(void) { /* request autodetection */ int gdriver = DETECT, gmode, errorcode; void *arrow; int x, y, maxx; unsigned int size; /* 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); /* terminate with an error code */ } maxx = getmaxx(); x = 0; y = getmaxy() / 2; /* draw the image to be grabbed */ draw_arrow(x, y); /* calculate the size of the image */ size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE); /* allocate memory to hold the image */ arrow = malloc(size); /* grab the image */ getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow); /* repeat until a key is pressed */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. while (!kbhit()) { /* erase old image */ putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); x += ARROW_SIZE; if (x >= maxx) x = 0; /* plot new image */ putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); } /* clean up */ free(arrow); closegraph(); return 0; } void draw_arrow(int x, int y) { /* draw an arrow on the screen */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. moveto(x, y); linerel(4*ARROW_SIZE, 0); linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); linerel(0, 2*ARROW_SIZE); linerel(2*ARROW_SIZE, -1*ARROW_SIZE); } 函数名: initgraph 功 能: 初始化图形系统 用 法: void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver); 程序例: #include #include #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; /* 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); /* return with error code */ } /* draw a line */ line(0, 0, getmaxx(), getmaxy()); /* clean up */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: inport 功 能: 从硬件端口中输入 用 法: int inp(int protid); 程序例: #include #include int main(void) { int result; int port = 0; /* serial port 0 */ result = inport(port); printf("Word read from port %d = 0x%X\n", port, result); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: insline 功 能: 在文本窗口中插入一个空行 用 法: void insline(void); 程序例: #include int main(void) { clrscr(); cprintf("INSLINE inserts an empty line in the text window\r\n"); cprintf("at the cursor position using the current text\r\n"); cprintf("background color. All lines below the empty one\r\n"); cprintf("move down one line and the bottom line scrolls\r\n"); cprintf("off the bottom of the window.\r\n"); cprintf("\r\nPress any key to continue:"); gotoxy(1, 3); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); insline(); getch(); return 0; } 函数名: installuserdriver 功 能: 安装设备驱动程序到 BGI 设备驱动程序表中 用 法: int far installuserdriver(char far *name, int (*detect)(void)); 程序例: #include #include #include #include /* function prototypes */ int huge detectEGA(void); void checkerrors(void); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int gdriver, gmode; /* install a user written device driver */ gdriver = installuserdriver("EGA", detectEGA); /* must force use of detection routine */ gdriver = DETECT; /* check for any installation errors */ checkerrors(); /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* check for any initialization errors */ checkerrors(); /* draw a line */ line(0, 0, getmaxx(), getmaxy()); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } /* detects EGA or VGA cards */ int huge detectEGA(void) { int driver, mode, sugmode = 0; detectgraph(&driver, &mode); if ((driver == EGA) || (driver == VGA)) /* return suggested video mode number */ return sugmode; else /* return an error code */ return grError; } /* check for and report any graphics errors */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void checkerrors(void) { int errorcode; /* read result of last graphics operation */ errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } } 函数名: installuserfont 功 能: 安装未嵌入 BGI 系统的字体文件(CHR) 用 法: int far installuserfont(char far *name); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include /* function prototype */ void checkerrors(void); int main(void) { /* request auto detection */ int gdriver = DETECT, gmode; int userfont; int midx, midy; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); midx = getmaxx() / 2; midy = getmaxy() / 2; /* check for any initialization errors */ checkerrors(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* install a user defined font file */ userfont = installuserfont("USER.CHR"); /* check for any installation errors */ checkerrors(); /* select the user font */ settextstyle(userfont, HORIZ_DIR, 4); /* output some text */ outtextxy(midx, midy, "Testing!"); /* clean up */ getch(); closegraph(); return 0; } /* check for and report any graphics errors */ void checkerrors(void) { int errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* read result of last graphics operation */ errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } } 函数名: int86 功 能: 通用 8086 软中断接口 用 法 : int int86(int intr_num, union REGS *inregs, union REGS *outregs); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #define VIDEO 0x10 void movetoxy(int x, int y) { union REGS regs; regs.h.ah = 2; /* set cursor postion */ regs.h.dh = y; regs.h.dl = x; regs.h.bh = 0; /* video page 0 */ int86(VIDEO, ?s, ?s); } int main(void) { clrscr(); movetoxy(35, 10); printf("Hello\n"); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: int86x 功 能: 通用 8086 软中断接口 用 法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs, struct SREGS *segregs); 程序例: #include #include #include int main(void) { char filename[80]; union REGS inregs, outregs; struct SREGS segregs; printf("Enter filename: "); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. gets(filename); inregs.h.ah = 0x43; inregs.h.al = 0x21; inregs.x.dx = FP_OFF(filename); segregs.ds = FP_SEG(filename); int86x(0x21, &inregs, &outregs, &segregs); printf("File attribute: %X\n", outregs.x.cx); return 0; } 函数名: intdos 功 能: 通用 DOS 接口 用 法: int intdos(union REGS *inregs, union REGS *outregs); 程序例: #include #include /* deletes file name; returns 0 on success, nonzero on failure */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int delete_file(char near *filename) { union REGS regs; int ret; regs.h.ah = 0x41; /* delete file */ regs.x.dx = (unsigned) filename; ret = intdos(?s, ?s); /* if carry flag is set, there was an error */ return(regs.x.cflag ? ret : 0); } int main(void) { int err; err = delete_file("NOTEXIST.$$$"); if (!err) printf("Able to delete NOTEXIST.$$$\n"); else printf("Not Able to delete NOTEXIST.$$$\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: intdosx 功 能: 通用 DOS 中断接口 用 法: int intdosx(union REGS *inregs, union REGS *outregs, struct SREGS *segregs); 程序例: #include #include /* deletes file name; returns 0 on success, nonzero on failure */ int delete_file(char far *filename) { union REGS regs; struct SREGS sregs; int ret; regs.h.ah = 0x41; /* delete file */ regs.x.dx = FP_OFF(filename); sregs.ds = FP_SEG(filename); ret = intdosx(?s, ?s, &sregs); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* if carry flag is set, there was an error */ return(regs.x.cflag ? ret : 0); } int main(void) { int err; err = delete_file("NOTEXIST.$$$"); if (!err) printf("Able to delete NOTEXIST.$$$\n"); else printf("Not Able to delete NOTEXIST.$$$\n"); return 0; } 函数名: intr 功 能: 改变软中断接口 用 法: void intr(int intr_num, struct REGPACK *preg); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include #define CF 1 /* Carry flag */ int main(void) { char directory[80]; struct REGPACK reg; printf("Enter directory to change to: "); gets(directory); reg.r_ax = 0x3B << 8; /* shift 3Bh into AH */ reg.r_dx = FP_OFF(directory); reg.r_ds = FP_SEG(directory); intr(0x21, ?); if (reg.r_flags & CF) printf("Directory change failed\n"); getcwd(directory, 80); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("The current directory is: %s\n", directory); return 0; } 函数名: ioctl 功 能: 控制 I/O 设备 用 法: int ioctl(int handle, int cmd[,int *argdx, int argcx]); 程序例: #include #include #include int main(void) { int stat; /* use func 8 to determine if the default drive is removable */ stat = ioctl(0, 8, 0, 0); if (!stat) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Drive %c is removable.\n", getdisk() + 'A'); else printf("Drive %c is not removable.\n", getdisk() + 'A'); return 0; } 函数名: isatty 功 能: 检查设备类型 用 法: int isatty(int handle); 程序例: #include #include int main(void) { int handle; handle = fileno(stdprn); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (isatty(handle)) printf("Handle %d is a device type\n", handle); else printf("Handle %d isn't a device type\n", handle); return 0; } 函数名: itoa 功 能: 把一整数转换为字符串 用 法: char *itoa(int value, char *string, int radix); 程序例: #include #include int main(void) { int number = 12345; char string[25]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. itoa(number, string, 10); printf("integer = %d string = %s\n", number, string); return 0; } 函数大全(k 开头) 函数名: kbhit 功 能: 检查当前按下的键 用 法: int kbhit(void); 程序例: #include int main(void) { cprintf("Press any key to continue:"); while (!kbhit()) /* do nothing */ ; cprintf("\r\nA key was pressed...\r\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: keep 功 能: 退出并继续驻留 用 法: void keep(int status, int size); 程序例: /***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. Due to the nature of this function the formula used to compute the number of paragraphs may not necessarily work in all cases. Use with care! Terminate Stay Resident (TSR) programs are complex and no other support for them is provided. Refer to the MS-DOS technical documentation for more information. */ #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* The clock tick interrupt */ #define INTR 0x1C /* Screen attribute (blue on grey) */ #define ATTR 0x7900 /* reduce heaplength and stacklength to make a smaller program in memory */ extern unsigned _heaplen = 1024; extern unsigned _stklen = 512; void interrupt ( *oldhandler)(void); void interrupt handler(void) { unsigned int (far *screen)[80]; static int count; /* For a color screen the video memory is at B800:0000. For a monochrome system use B000:000 */ screen = MK_FP(0xB800,0); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* increase the counter and keep it within 0 to 9 */ count++; count %= 10; /* put the number on the screen */ screen[0][79] = count + '0' + ATTR; /* call the old interrupt handler */ oldhandler(); } int main(void) { /* get the address of the current clock tick interrupt */ oldhandler = getvect(INTR); /* install the new interrupt handler */ setvect(INTR, handler); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* _psp is the starting address of the program in memory. The top of the stack is the end of the program. Using _SS and _SP together we can get the end of the stack. You may want to allow a bit of saftey space to insure that enough room is being allocated ie: (_SS + ((_SP + safety space)/16) - _psp) */ keep(0, (_SS + (_SP/16) - _psp)); return 0; } 函数名: kbhit 功 能: 检查当前按下的键 用 法: int kbhit(void); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { cprintf("Press any key to continue:"); while (!kbhit()) /* do nothing */ ; cprintf("\r\nA key was pressed...\r\n"); return 0; } 函数名: keep 功 能: 退出并继续驻留 用 法: void keep(int status, int size); 程序例: /***NOTE: This is an interrupt service routine. You can NOT compile this program with Test Stack Overflow turned on and get an Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. executable file which will operate correctly. Due to the nature of this function the formula used to compute the number of paragraphs may not necessarily work in all cases. Use with care! Terminate Stay Resident (TSR) programs are complex and no other support for them is provided. Refer to the MS-DOS technical documentation for more information. */ #include /* The clock tick interrupt */ #define INTR 0x1C /* Screen attribute (blue on grey) */ #define ATTR 0x7900 /* reduce heaplength and stacklength to make a smaller program in memory */ extern unsigned _heaplen = 1024; extern unsigned _stklen = 512; void interrupt ( *oldhandler)(void); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void interrupt handler(void) { unsigned int (far *screen)[80]; static int count; /* For a color screen the video memory is at B800:0000. For a monochrome system use B000:000 */ screen = MK_FP(0xB800,0); /* increase the counter and keep it within 0 to 9 */ count++; count %= 10; /* put the number on the screen */ screen[0][79] = count + '0' + ATTR; /* call the old interrupt handler */ oldhandler(); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { /* get the address of the current clock tick interrupt */ oldhandler = getvect(INTR); /* install the new interrupt handler */ setvect(INTR, handler); /* _psp is the starting address of the program in memory. The top of the stack is the end of the program. Using _SS and _SP together we can get the end of the stack. You may want to allow a bit of saftey space to insure that enough room is being allocated ie: (_SS + ((_SP + safety space)/16) - _psp) */ keep(0, (_SS + (_SP/16) - _psp)); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数大全(l 开头) 函数名: labs 用 法: long labs(long n); 程序例: #include #include int main(void) { long result; long x = -12345678L; result= labs(x); printf("number: %ld abs value: %ld\n", x, result); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: ldexp 功 能: 计算 value*2 的幂 用 法: double ldexp(double value, int exp); 程序例: #include #include int main(void) { double value; double x = 2; /* ldexp raises 2 by a power of 3 then multiplies the result by 2 */ value = ldexp(x,3); printf("The ldexp value is: %lf\n", value); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: ldiv 功 能: 两个长整型数相除, 返回商和余数 用 法: ldiv_t ldiv(long lnumer, long ldenom); 程序例: /* ldiv example */ #include #include int main(void) { ldiv_t lx; lx = ldiv(100000L, 30000L); printf("100000 div 30000 = %ld remainder %ld\n", lx.quot, lx.rem); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: lfind 功 能: 执行线性搜索 用 法: void *lfind(void *key, void *base, int *nelem, int width, int (*fcmp)()); 程序例: #include #include int compare(int *x, int *y) { return( *x - *y ); } int main(void) { int array[5] = {35, 87, 46, 99, 12}; size_t nelem = 5; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int key; int *result; key = 99; result = lfind(&key, array, &nelem, sizeof(int), (int(*)(const void *,const void *))compare); if (result) printf("Number %d found\n",key); else printf("Number %d not found\n",key); return 0; } 函数名: line 功 能: 在指定两点间画一直线 用 法: void far line(int x0, int y0, int x1, int y1); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int xmax, ymax; /* 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); } setcolor(getmaxcolor()); xmax = getmaxx(); ymax = getmaxy(); /* draw a diagonal line */ line(0, 0, xmax, ymax); /* clean up */ getch(); closegraph(); return 0; } 函数名: linerel 功 能: 从当前位置点(CP)到与 CP 有一给定相对距离的点画一直线 用 法: void far linerel(int dx, int dy); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); exit(1); } /* move the C.P. to location (20, 30) */ moveto(20, 30); /* create and output a message at (20, 30) */ sprintf(msg, " (%d, %d)", getx(), gety()); outtextxy(20, 30, msg); /* draw a line to a point a relative distance away from the current value of C.P. */ linerel(100, 100); /* create and output a message at C.P. */ sprintf(msg, " (%d, %d)", getx(), gety()); outtext(msg); /* clean up */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: localtime 功 能: 把日期和时间转变为结构 用 法: struct tm *localtime(long *clock); 程序例: #include #include #include int main(void) { time_t timer; struct tm *tblock; /* gets time of day */ timer = time(NULL); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* converts date/time to a structure */ tblock = localtime(&timer); printf("Local time is: %s", asctime(tblock)); return 0; } 函数名: lock 功 能: 设置文件共享锁 用 法: int lock(int handle, long offset, long length); 程序例: #include #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int handle, status; long length; /* Must have DOS Share.exe loaded for */ /* file locking to function properly */ handle = sopen("c:\\autoexec.bat", O_RDONLY,SH_DENYNO,S_IREAD); if (handle < 0) { printf("sopen failed\n"); exit(1); } length = filelength(handle); status = lock(handle,0L,length/2); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (status == 0) printf("lock succeeded\n"); else printf("lock failed\n"); status = unlock(handle,0L,length/2); if (status == 0) printf("unlock succeeded\n"); else printf("unlock failed\n"); close(handle); return 0; } 函数名: log 功 能: 对数函数 ln(x) 用 法: double log(double x); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { double result; double x = 8.6872; result = log(x); printf("The natural log of %lf is %lf\n", x, result); return 0; } 函数名: log10 功 能: 对数函数 log 用 法: double log10(double x); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { double result; double x = 800.6872; result = log10(x); printf("The common log of %lf is %lf\n", x, result); return 0; } 函数名: longjump 功 能: 执行非局部转移 用 法: void longjump(jmp_buf env, int val); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include void subroutine(jmp_buf); int main(void) { int value; jmp_buf jumper; value = setjmp(jumper); if (value != 0) { printf("Longjmp with value %d\n", value); exit(value); } printf("About to call subroutine ... \n"); subroutine(jumper); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } void subroutine(jmp_buf jumper) { longjmp(jumper,1); } 函数名: lowvideo 功 能: 选择低亮度字符 用 法: void lowvideo(void); 程序例: #include int main(void) { clrscr(); highvideo(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. cprintf("High Intesity Text\r\n"); lowvideo(); gotoxy(1,2); cprintf("Low Intensity Text\r\n"); return 0; } 函数名: lrotl, _lrotl 功 能: 将无符号长整型数向左循环移位 用 法: unsigned long lrotl(unsigned long lvalue, int count); unsigned long _lrotl(unsigned long lvalue, int count); 程序例: /* lrotl example */ #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { unsigned long result; unsigned long value = 100; result = _lrotl(value,1); printf("The value %lu rotated left one bit is: %lu\n", value, result); return 0; } 函数名: lsearch 功 能: 线性搜索 用 法: void *lsearch(const void *key, void *base, size_t *nelem, size_t width, int (*fcmp)(const void *, const void *)); 程序例: #include #include int compare(int *x, int *y) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { return( *x - *y ); } int main(void) { int array[5] = {35, 87, 46, 99, 12}; size_t nelem = 5; int key; int *result; key = 99; result = lfind(&key, array, &nelem, sizeof(int), (int(*)(const void *,const void *))compare); if (result) printf("Number %d found\n",key); else printf("Number %d not found\n",key); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: lseek 功 能: 移动文件读/写指针 用 法: long lseek(int handle, long offset, int fromwhere); 程序例: #include #include #include #include #include int main(void) { int handle; char msg[] = "This is a test"; char ch; /* create a file */ handle = open("TEST.$$$", O_CREAT | O_RDWR, S_IREAD | Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. S_IWRITE); /* write some data to the file */ write(handle, msg, strlen(msg)); /* seek to the begining of the file */ lseek(handle, 0L, SEEK_SET); /* reads chars from the file until we hit EOF */ do { read(handle, &ch, 1); printf("%c", ch); } while (!eof(handle)); close(handle); return 0; } 函数大全(m 开头) main()主函数 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 每一 C 程序都必须有一 main()函数, 可以根据自己的爱好把它 放在程序的某 个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后 面, 无论放 在哪个地方, 以下几点说明都是适合的。 1. main() 参数 在 Turbo C2.0 启动过程中, 传递 main()函数三个参数: argc, argv 和 env。 * argc: 整数, 为传给 main()的命令行参数个数。 * argv: 字符串数组。 在 DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对 DOS 3.0 以下的版本, argv[0]为空串("") 。 argv[1] 为在 DOS 命令行中执行程序名后的第一个 字符串; argv[2] 为执行程序名后的第二个字符串; ... argv[argc]为 NULL。 *env: 安 符 串 数 组 。 env[] 的 每 一 个 元 素 都 包 含 ENVVAR=value 形式的字符 串。其中 ENVVAR 为环境变量如 PATH 或 87。value 为 ENVVAR 的 对应值如 C:\DOS, C: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. \TURBOC(对于 PATH) 或 YES(对于 87)。 Turbo C2.0 启动时总是把这三个参数传递给 main()函数, 可以在用户 程序中 说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为 main()子程序 的局部变量。 请注意: 一旦想说明这些参数, 则必须按 argc, argv, env 的顺序, 如以下 的例子: main() main(int argc) main(int argc, char *argv[]) main(int argc, char *argv[], char *env[]) 其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用 argc, 而不 用 argv[]的情况。 以下提供一样例程序 EXAMPLE.EXE, 演示如何在 main()函数 中使用三个参数: /*program name EXAMPLE.EXE*/ #include #include main(int argc, char *argv[], char *env[]) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { int i; printf("These are the %d command- line arguments passed to main:\n\n", argc); for(i=0; i<=argc; i++) printf("argv[%d]:%s\n", i, argv[i]); printf("\nThe environment string(s)on this system are:\n\n"); for(i=0; env[i]!=NULL; i++) printf(" env[%d]:%s\n", i, env[i]); } 如果在 DOS 提示符下, 按以下方式运行 EXAMPLE.EXE: C:\example first_argument "argument with blanks" 3 4 "last but one" stop! 注意: 可以用双引号括起内含空格的参数, 如本例中的: " argument with blanks"和"Last but one")。 结果是这样的: The value of argc is 7 These are the 7 command-linearguments passed to main: argv[0]:C:\TURBO\EXAMPLE.EXE Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. argv[1]:first_argument argv[2]:argument with blanks argv[3]:3 argv[4]:4 argv[5]:last but one argv[6]:stop! argv[7]:(NULL) The environment string(s) on this system are: env[0]: COMSPEC=C:\COMMAND.COM env[1]: PROMPT=$P$G /*视具体设置而定*/ env[2]: PATH=C:\DOS;C:\TC /*视具体设置而定*/ 应该提醒的是: 传送 main() 函数的命令行参数的最大长度为 128 个字符 (包 括参数间的空格), 这是由 DOS 限制的。 函数名: matherr 功 能: 用户可修改的数学错误处理程序 用 法: int matherr(struct exception *e); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* This is a user-defined matherr function that prevents any error messages from being printed. */ #include int matherr(struct exception *a) { return 1; } 函数名: memccpy 功 能: 从源 source 中拷贝 n 个字节到目标 destin 中 用 法: void *memccpy(void *destin, void *source, unsigned char ch, unsigned n); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { char *src = "This is the source string"; char dest[50]; char *ptr; ptr = memccpy(dest, src, 'c', strlen(src)); if (ptr) { *ptr = '\0'; printf("The character was found: %s\n", dest); } else printf("The character wasn't found\n"); return 0; } 函数名: malloc 功 能: 内存分配函数 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: void *malloc(unsigned size); 程序例: #include #include #include #include int main(void) { char *str; /* allocate memory for string */ /* This will generate an error when compiling */ /* with C++, use the new operator instead. */ if ((str = malloc(10)) == NULL) { printf("Not enough memory to allocate buffer\n"); exit(1); /* terminate program if out of memory */ } /* copy "Hello" into string */ strcpy(str, "Hello"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* display string */ printf("String is %s\n", str); /* free memory */ free(str); return 0; } 函数名: memchr 功 能: 在数组的前 n 个字节中搜索字符 用 法: void *memchr(void *s, char ch, unsigned n); 程序例: #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { char str[17]; char *ptr; strcpy(str, "This is a string"); ptr = memchr(str, 'r', strlen(str)); if (ptr) printf("The character 'r' is at position: %d\n", ptr - str); else printf("The character was not found\n"); return 0; } 函数名: memcpy 功 能: 从源 source 中拷贝 n 个字节到目标 destin 中 用 法: void *memcpy(void *destin, void *source, unsigned n); 程序例: #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { char src[] = "******************************"; char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709"; char *ptr; printf("destination before memcpy: %s\n", dest); ptr = memcpy(dest, src, strlen(src)); if (ptr) printf("destination after memcpy: %s\n", dest); else printf("memcpy failed\n"); return 0; } 函数名: memicmp 功 能: 比较两个串 s1 和 s2 的前 n 个字节, 忽略大小写 用 法: int memicmp(void *s1, void *s2, unsigned n); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { char *buf1 = "ABCDE123"; char *buf2 = "abcde456"; int stat; stat = memicmp(buf1, buf2, 5); printf("The strings to position 5 are "); if (stat) printf("not "); printf("the same\n"); return 0; } 函数名: memmove 功 能: 移动一块字节 用 法: void *memmove(void *destin, void *source, unsigned n); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { char *dest = "abcdefghijklmnopqrstuvwxyz0123456789"; char *src = "******************************"; printf("destination prior to memmove: %s\n", dest); memmove(dest, src, 26); printf("destination after memmove: %s\n", dest); return 0; } 函数名: memset 功 能: 设置 s 中的所有字节为 ch, s 数组的大小由 n 给定 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { char buffer[] = "Hello world\n"; printf("Buffer before memset: %s\n", buffer); memset(buffer, '*', strlen(buffer) - 1); printf("Buffer after memset: %s\n", buffer); return 0; } 函数名: mkdir 功 能: 建立一个目录 用 法: int mkdir(char *pathname); 程序例: #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int status; clrscr(); status = mkdir("asdfjklm"); (!status) ? (printf("Directory created\n")) : (printf("Unable to create directory\n")); getch(); system("dir"); getch(); status = rmdir("asdfjklm"); (!status) ? (printf("Directory deleted\n")) : (perror("Unable to delete directory")); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: mktemp 功 能: 建立唯一的文件名 用 法: char *mktemp(char *template); 程序例: #include #include int main(void) { /* fname defines the template for the temporary file. */ char *fname = "TXXXXXX", *ptr; ptr = mktemp(fname); printf("%s\n",ptr); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: MK_FP 功 能: 设置一个远指针 用 法: void far *MK_FP(unsigned seg, unsigned off); 程序例: #include #include int main(void) { int gd, gm, i; unsigned int far *screen; detectgraph(&gd, &gm); if (gd == HERCMONO) screen = MK_FP(0xB000, 0); else screen = MK_FP(0xB800, 0); for (i=0; i<26; i++) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. screen[i] = 0x0700 + ('a' + i); return 0; } 函数名: modf 功 能: 把数分为指数和尾数 用 法: double modf(double value, double *iptr); 程序例: #include #include int main(void) { double fraction, integer; double number = 100000.567; fraction = modf(number, &integer); printf("The whole and fractional parts of %lf are %lf and %lf\n", number, integer, fraction); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: movedata 功 能: 拷贝字节 用 法: void movedata(int segsrc, int offsrc, int segdest, int offdest, unsigned numbytes); 程序例: #include #define MONO_BASE 0xB000 /* saves the contents of the monochrome screen in buffer */ void save_mono_screen(char near *buffer) { movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2); } int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { char buf[80*25*2]; save_mono_screen(buf); } 函数名: moverel 功 能: 将当前位置(CP)移动一相对距离 用 法: void far moverel(int dx, int dy); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* move the C.P. to location (20, 30) */ moveto(20, 30); /* plot a pixel at the C.P. */ putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at (20, 30) */ sprintf(msg, " (%d, %d)", getx(), gety()); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. outtextxy(20, 30, msg); /* move to a point a relative distance */ /* away from the current value of C.P. */ moverel(100, 100); /* plot a pixel at the C.P. */ putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at C.P. */ sprintf(msg, " (%d, %d)", getx(), gety()); outtext(msg); /* clean up */ getch(); closegraph(); return 0; } 函数名: movetext Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 将屏幕文本从一个矩形区域拷贝到另一个矩形区域 用 法: int movetext(int left, int top, int right, int bottom, int newleft, int newtop); 程序例: #include #include int main(void) { char *str = "This is a test string"; clrscr(); cputs(str); getch(); movetext(1, 1, strlen(str), 2, 10, 10); getch(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: moveto 功 能: 将 CP 移到(x, y) 用 法: void far moveto(int x, int y); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* move the C.P. to location (20, 30) */ moveto(20, 30); /* plot a pixel at the C.P. */ putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at (20, 30) */ sprintf(msg, " (%d, %d)", getx(), gety()); outtextxy(20, 30, msg); /* move to (100, 100) */ moveto(100, 100); /* plot a pixel at the C.P. */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. putpixel(getx(), gety(), getmaxcolor()); /* create and output a message at C.P. */ sprintf(msg, " (%d, %d)", getx(), gety()); outtext(msg); /* clean up */ getch(); closegraph(); return 0; } 函数名: movemem 功 能: 移动一块字节 用 法: void movemem(void *source, void *destin, unsigned len); 程序例: #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { char *source = "Borland International"; char *destination; int length; length = strlen(source); destination = malloc(length + 1); movmem(source,destination,length); printf("%s\n",destination); return 0; } 函数名: normvideo 功 能: 选择正常亮度字符 用 法: void normvideo(void); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { normvideo(); cprintf("NORMAL Intensity Text\r\n"); return 0; } 函数名: nosound 功 能: 关闭 PC 扬声器 用 法: void nosound(void); 程序例: /* Emits a 7-Hz tone for 10 seconds. True story: 7 Hz is the resonant frequency of a chicken's skull cavity. This was determined empirically in Australia, where a new factory Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. generating 7-Hz tones was located too close to a chicken ranch: When the factory started up, all the chickens died. Your PC may not be able to emit a 7-Hz tone. */ int main(void) { sound(7); delay(10000); nosound(); } 函数大全(o 开头) 函数名: open 功 能: 打开一个文件用于读或写 用 法: int open(char *pathname, int access[, int permiss]); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int handle; char msg[] = "Hello world"; if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1) { perror("Error:"); return 1; } write(handle, msg, strlen(msg)); close(handle); return 0; } 函数名: outport 功 能: 输出整数到硬件端口中 用 法: void outport(int port, int value); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { int value = 64; int port = 0; outportb(port, value); printf("Value %d sent to port number %d\n", value, port); return 0; } 函数名: outportb 功 能: 输出字节到硬件端口中 用 法: void outportb(int port, char byte); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int value = 64; int port = 0; outportb(port, value); printf("Value %d sent to port number %d\n", value, port); return 0; } 函数名: outtext 功 能: 在视区显示一个字符串 用 法: void far outtext(char far *textstring); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* move the C.P. to the center of the screen */ moveto(midx, midy); /* output text starting at the C.P. */ outtext("This "); outtext("is "); outtext("a "); outtext("test."); /* clean up */ getch(); closegraph(); return 0; } 函数名: outtextxy 功 能: 在指定位置显示一字符串 用 法: void far outtextxy(int x, int y, char *textstring); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* output text at the center of the screen*/ /* Note: the C.P. doesn't get changed.*/ outtextxy(midx, midy, "This is a test."); /* clean up */ getch(); closegraph(); return 0; } 函数大全(p 开头) 函数名: parsfnm 功 能: 分析文件名 用 法: char *parsfnm (char *cmdline, struct fcb *fcbptr, int option); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include int main(void) { char line[80]; struct fcb blk; /* get file name */ printf("Enter drive and file name (no path - ie. a:file.dat)\n"); gets(line); /* put file name in fcb */ if (parsfnm(line, &blk, 1) == NULL) printf("Error in parsfm call\n"); else printf("Drive #%d Name: %11s\n", blk.fcb_drive, blk.fcb_name); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: peek 功 能: 检查存储单元 用 法: int peek(int segment, unsigned offset); 程序例: #include #include #include int main(void) { int value = 0; printf("The current status of your keyboard is:\n"); value = peek(0x0040, 0x0017); if (value & 1) printf("Right shift on\n"); else Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Right shift off\n"); if (value & 2) printf("Left shift on\n"); else printf("Left shift off\n"); if (value & 4) printf("Control key on\n"); else printf("Control key off\n"); if (value & 8) printf("Alt key on\n"); else printf("Alt key off\n"); if (value & 16) printf("Scroll lock on\n"); else printf("Scroll lock off\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (value & 32) printf("Num lock on\n"); else printf("Num lock off\n"); if (value & 64) printf("Caps lock on\n"); else printf("Caps lock off\n"); return 0; } 函数名: peekb 功 能: 检查存储单元 用 法: char peekb (int segment, unsigned offset); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int value = 0; printf("The current status of your keyboard is:\n"); value = peekb(0x0040, 0x0017); if (value & 1) printf("Right shift on\n"); else printf("Right shift off\n"); if (value & 2) printf("Left shift on\n"); else printf("Left shift off\n"); if (value & 4) printf("Control key on\n"); else printf("Control key off\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (value & 8) printf("Alt key on\n"); else printf("Alt key off\n"); if (value & 16) printf("Scroll lock on\n"); else printf("Scroll lock off\n"); if (value & 32) printf("Num lock on\n"); else printf("Num lock off\n"); if (value & 64) printf("Caps lock on\n"); else printf("Caps lock off\n"); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: perror 功 能: 系统错误信息 用 法: void perror(char *string); 程序例: #include int main(void) { FILE *fp; fp = fopen("perror.dat", "r"); if (!fp) perror("Unable to open file for reading"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: pieslice 功 能: 绘制并填充一个扇形 用 法: void far pieslice(int x, int stanle, int endangle, int radius); 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int stangle = 45, endangle = 135, radius = 100; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 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; /* set fill style and draw a pie slice */ setfillstyle(EMPTY_FILL, getmaxcolor()); pieslice(midx, midy, stangle, endangle, radius); /* clean up */ getch(); closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: poke 功 能: 存值到一个给定存储单元 用 法: void poke(int segment, int offset, int value); 程序例: #include #include int main(void) { clrscr(); cprintf("Make sure the scroll lock key is off and press any key\r\n"); getch(); poke(0x0000,0x0417,16); cprintf("The scroll lock is now on\r\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: pokeb 功 能: 存值到一个给定存储单元 用 法: void pokeb(int segment, int offset, char value); 程序例: #include #include int main(void) { clrscr(); cprintf("Make sure the scroll lock key is off and press any key\r\n"); getch(); pokeb(0x0000,0x0417,16); cprintf("The scroll lock is now on\r\n"); return 0; } 函数名: poly 功 能: 根据参数产生一个多项式 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: double poly(double x, int n, double c[]); 程序例: #include #include /* polynomial: x**3 - 2x**2 + 5x - 1 */ int main(void) { double array[] = { -1.0, 5.0, -2.0, 1.0 }; double result; result = poly(2.0, 3, array); printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf\n", result); return 0; } 函数名: pow Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 指数函数(x 的 y 次方) 用 法: double pow(double x, double y); 程序例: #include #include int main(void) { double x = 2.0, y = 3.0; printf("%lf raised to %lf is %lf\n", x, y, pow(x, y)); return 0; } 函数名: pow10 功 能: 指数函数(10 的 p 次方) 用 法: double pow10(int p); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { double p = 3.0; printf("Ten raised to %lf is %lf\n", p, pow10(p)); return 0; } 函数名: printf 功 能: 产生格式化输出的函数 用 法: int printf(char *format...); 程序例: #include #include #define I 555 #define R 5.5 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int i,j,k,l; char buf[7]; char *prefix = buf; char tp[20]; printf("prefix 6d 6o 8x 10.2e " "10.2f\n"); strcpy(prefix,"%"); for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) for (k = 0; k < 2; k++) for (l = 0; l < 2; l++) { if (i==0) strcat(prefix,"-"); if (j==0) strcat(prefix,"+"); if (k==0) strcat(prefix,"#"); if (l==0) strcat(prefix,"0"); printf("%5s |",prefix); strcpy(tp,prefix); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. strcat(tp,"6d |"); printf(tp,I); strcpy(tp,""); strcpy(tp,prefix); strcat(tp,"6o |"); printf(tp,I); strcpy(tp,""); strcpy(tp,prefix); strcat(tp,"8x |"); printf(tp,I); strcpy(tp,""); strcpy(tp,prefix); strcat(tp,"10.2e |"); printf(tp,R); strcpy(tp,prefix); strcat(tp,"10.2f |"); printf(tp,R); printf(" \n"); strcpy(prefix,"%"); } } return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: putc 功 能: 输出一字符到指定流中 用 法: int putc(int ch, FILE *stream); 程序例: #include int main(void) { char msg[] = "Hello world\n"; int i = 0; while (msg[i]) putc(msg[i++], stdout); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: putch 功 能: 输出字符到控制台 用 法: int putch(int ch); 程序例: #include #include int main(void) { char ch = 0; printf("Input a string:"); while ((ch != '\r')) { ch = getch(); putch(ch); } return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: putchar 功 能: 在 stdout 上输出字符 用 法: int putchar(int ch); 程序例: #include /* define some box-drawing characters */ #define LEFT_TOP 0xDA #define RIGHT_TOP 0xBF #define HORIZ 0xC4 #define VERT 0xB3 #define LEFT_BOT 0xC0 #define RIGHT_BOT 0xD9 int main(void) { char i, j; /* draw the top of the box */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. putchar(LEFT_TOP); for (i=0; i<10; i++) putchar(HORIZ); putchar(RIGHT_TOP); putchar('\n'); /* draw the middle */ for (i=0; i<4; i++) { putchar(VERT); for (j=0; j<10; j++) putchar(' '); putchar(VERT); putchar('\n'); } /* draw the bottom */ putchar(LEFT_BOT); for (i=0; i<10; i++) putchar(HORIZ); putchar(RIGHT_BOT); putchar('\n'); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: putenv 功 能: 把字符串加到当前环境中 用 法: int putenv(char *envvar); 程序例: #include #include #include #include #include int main(void) { char *path, *ptr; int i = 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* get the current path environment */ ptr = getenv("PATH"); /* set up new path */ path = malloc(strlen(ptr)+15); strcpy(path,"PATH="); strcat(path,ptr); strcat(path,";c:\\temp"); /* replace the current path and display current environment */ putenv(path); while (environ[i]) printf("%s\n",environ[i++]); return 0; } 函数名: putimage 功 能: 在屏幕上输出一个位图 用 法: void far putimage(int x, int y, void far *bitmap, int op); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include #define ARROW_SIZE 10 void draw_arrow(int x, int y); int main(void) { /* request autodetection */ int gdriver = DETECT, gmode, errorcode; void *arrow; int x, y, maxx; unsigned int size; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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(); x = 0; y = getmaxy() / 2; /* draw the image to be grabbed */ draw_arrow(x, y); /* calculate the size of the image */ size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE); /* allocate memory to hold the image */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. arrow = malloc(size); /* grab the image */ getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow); /* repeat until a key is pressed */ while (!kbhit()) { /* erase old image */ putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); x += ARROW_SIZE; if (x >= maxx) x = 0; /* plot new image */ putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); } /* clean up */ free(arrow); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. closegraph(); return 0; } void draw_arrow(int x, int y) { /* draw an arrow on the screen */ moveto(x, y); linerel(4*ARROW_SIZE, 0); linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); linerel(0, 2*ARROW_SIZE); linerel(2*ARROW_SIZE, -1*ARROW_SIZE); } 函数名: putpixel 功 能: 在指定位置画一像素 用 法: void far putpixel (int x, int y, int pixelcolor); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include #define PIXEL_COUNT 1000 #define DELAY_TIME 100 /* in milliseconds */ int main(void) { /* request autodetection */ 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(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } 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 int main(void) { char string[] = "This is an example output string\n"; puts(string); return 0; } 函数名: puttext 功 能: 将文本从存储区拷贝到屏幕 用 法: int puttext(int left, int top, int right, int bottom, void *source); 程序例: #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char buffer[512]; /* put some text to the console */ clrscr(); gotoxy(20, 12); cprintf("This is a test. Press any key to continue ..."); getch(); /* grab screen contents */ gettext(20, 12, 36, 21,buffer); clrscr(); /* put selected characters back to the screen */ gotoxy(20, 12); puttext(20, 12, 36, 21, buffer); getch(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: putw 功 能: 把一字符或字送到流中 用 法: int putw(int w, FILE *stream); 程序例: #include #include #define FNAME "test.$$$" int main(void) { FILE *fp; int word; /* place the word in a file */ fp = fopen(FNAME, "wb"); if (fp == NULL) { printf("Error opening file %s\n", FNAME); exit(1); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. word = 94; putw(word,fp); if (ferror(fp)) printf("Error writing to file\n"); else printf("Successful write\n"); fclose(fp); /* reopen the file */ fp = fopen(FNAME, "rb"); if (fp == NULL) { printf("Error opening file %s\n", FNAME); exit(1); } /* extract the word */ word = getw(fp); if (ferror(fp)) printf("Error reading file\n"); else Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Successful read: word = %d\n", word); /* clean up */ fclose(fp); unlink(FNAME); return 0; } 函数大全(q 开头) 函数名: qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)()); 程序例: #include #include #include int sort_function( const void *a, const void *b); char list[5][4] = { "cat", "car", "cab", "cap", "can" }; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int x; qsort((void *)list, 5, sizeof(list[0]), sort_function); for (x = 0; x < 5; x++) printf("%s\n", list[x]); return 0; } int sort_function( const void *a, const void *b) { return( strcmp(a,b) ); } 函数大全(r 开头) 函数名: raise 功 能: 向正在执行的程序发送一个信号 用 法: int raise(int sig); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { int a, b; a = 10; b = 0; if (b == 0) /* preempt divide by zero error */ raise(SIGFPE); a = a / b; return 0; } 函数名: rand 功 能: 随机数发生器 用 法: void rand(void); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { int i; printf("Ten random numbers from 0 to 99\n\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); return 0; } 函数名: randbrd 功 能: 随机块读 用 法: int randbrd(struct fcb *fcbptr, int reccnt); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include int main(void) { char far *save_dta; char line[80], buffer[256]; struct fcb blk; int i, result; /* get user input file name for dta */ printf("Enter drive and file name (no path - i.e. a:file.dat)\n"); gets(line); /* put file name in fcb */ if (!parsfnm(line, &blk, 1)) { printf("Error in call to parsfnm\n"); exit(1); } printf("Drive #%d File: %s\n\n", blk.fcb_drive, blk.fcb_name); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* open file with DOS FCB open file */ bdosptr(0x0F, &blk, 0); /* save old dta, and set new one */ save_dta = getdta(); setdta(buffer); /* set up info for the new dta */ blk.fcb_recsize = 128; blk.fcb_random = 0L; result = randbrd(&blk, 1); /* check results from randbrd */ if (!result) printf("Read OK\n\n"); else { perror("Error during read"); exit(1); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* read in data from the new dta */ printf("The first 128 characters are:\n"); for (i=0; i<128; i++) putchar(buffer[i]); /* restore previous dta */ setdta(save_dta); return 0; } 函数名: randbwr 功 能: 随机块写 用 法: int randbwr(struct fcp *fcbptr, int reccnt); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { char far *save_dta; char line[80]; char buffer[256] = "RANDBWR test!"; struct fcb blk; int result; /* get new file name from user */ printf("Enter a file name to create (no path - ie. a:file.dat\n"); gets(line); /* parse the new file name to the dta */ parsfnm(line,&blk,1); printf("Drive #%d File: %s\n", blk.fcb_drive, blk.fcb_name); /* request DOS services to create file */ if (bdosptr(0x16, &blk, 0) == -1) { perror("Error creating file"); exit(1); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* save old dta and set new dta */ save_dta = getdta(); setdta(buffer); /* write new records */ blk.fcb_recsize = 256; blk.fcb_random = 0L; result = randbwr(&blk, 1); if (!result) printf("Write OK\n"); else { perror("Disk error"); exit(1); } /* request DOS services to close the file */ if (bdosptr(0x10, &blk, 0) == -1) { perror("Error closing file"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); } /* reset the old dta */ setdta(save_dta); return 0; } 函数名: random 功 能: 随机数发生器 用 法: int random(int num); 程序例: #include #include #include /* prints a random number in the range 0 to 99 */ int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { randomize(); printf("Random number in the 0-99 range: %d\n", random (100)); return 0; } 函数名: randomize 功 能: 初始化随机数发生器 用 法: void randomize(void); 程序例: #include #include #include int main(void) { int i; randomize(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Ten random numbers from 0 to 99\n\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); return 0; } 函数名: read 功 能: 从文件中读 用 法: int read(int handle, void *buf, int nbyte); 程序例: #include #include #include #include #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. void *buf; int handle, bytes; buf = malloc(10); /* Looks for a file in the current directory named TEST.$$$ and attempts to read 10 bytes from it. To use this example you should create the file TEST.$$$ */ if ((handle = open("TEST.$$$", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1) { printf("Error Opening File\n"); exit(1); } if ((bytes = read(handle, buf, 10)) == -1) { printf("Read Failed.\n"); exit(1); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } else { printf("Read: %d bytes read.\n", bytes); } return 0; } 函数名: realloc 功 能: 重新分配主存 用 法: void *realloc(void *ptr, unsigned newsize); 程序例: #include #include #include int main(void) { char *str; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* allocate memory for string */ str = malloc(10); /* copy "Hello" into string */ strcpy(str, "Hello"); printf("String is %s\n Address is %p\n", str, str); str = realloc(str, 20); printf("String is %s\n New address is %p\n", str, str); /* free memory */ free(str); return 0; } 函数名: rectangle 功 能: 画一个矩形 用 法: void far rectangle(int left, int top, int right, int bottom); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int left, top, right, bottom; /* 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); /* terminate with an error code */ } left = getmaxx() / 2 - 50; top = getmaxy() / 2 - 50; right = getmaxx() / 2 + 50; bottom = getmaxy() / 2 + 50; /* draw a rectangle */ rectangle(left,top,right,bottom); /* clean up */ getch(); closegraph(); return 0; } 函数名: registerbgidriver 功 能: 登录已连接进来的图形驱动程序代码 用 法: int registerbgidriver(void(*driver)(void)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; /* register a driver that was added into graphics.lib */ errorcode = registerbgidriver(EGAVGA_driver); /* report any registration errors */ if (errorcode < 0) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* draw a line */ line(0, 0, getmaxx(), getmaxy()); /* clean up */ getch(); closegraph(); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: remove 功 能: 删除一个文件 用 法: int remove(char *filename); 程序例: #include int main(void) { char file[80]; /* prompt for file name to delete */ printf("File to delete: "); gets(file); /* delete the file */ if (remove(file) == 0) printf("Removed %s.\n",file); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. else perror("remove"); return 0; } 函数名: rename 功 能: 重命名文件 用 法: int rename(char *oldname, char *newname); 程序例: #include int main(void) { char oldname[80], newname[80]; /* prompt for file to rename and new name */ printf("File to rename: "); gets(oldname); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("New name: "); gets(newname); /* Rename the file */ if (rename(oldname, newname) == 0) printf("Renamed %s to %s.\n", oldname, newname); else perror("rename"); return 0; } 函数名: restorecrtmode 功 能: 将屏幕模式恢复为先前的 imitgraph 设置 用 法: void far restorecrtmode(void); 程序例: #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int x, y; /* 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 */ } x = getmaxx() / 2; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. y = getmaxy() / 2; /* output a message */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(x, y, "Press any key to exit graphics:"); getch(); /* restore system to text mode */ restorecrtmode(); printf("We're now in text mode.\n"); printf("Press any key to return to graphics mode:"); getch(); /* return to graphics mode */ setgraphmode(getgraphmode()); /* output a message */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(x, y, "We're back in graphics mode."); outtextxy(x, y+textheight("W"), "Press any key to halt:"); /* clean up */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); closegraph(); return 0; } 函数名: rewind 功 能: 将文件指针重新指向一个流的开头 用 法: int rewind(FILE *stream); 程序例: #include #include int main(void) { FILE *fp; char *fname = "TXXXXXX", *newname, first; newname = mktemp(fname); fp = fopen(newname,"w+"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. fprintf(fp,"abcdefghijklmnopqrstuvwxyz"); rewind(fp); fscanf(fp,"%c",&first); printf("The first character is: %c\n",first); fclose(fp); remove(newname); return 0; } 函数名: rmdir 功 能: 删除 DOS 文件目录 用 法: int rmdir(char *stream); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #define DIRNAME "testdir.$$$" int main(void) { int stat; stat = mkdir(DIRNAME); if (!stat) printf("Directory created\n"); else { printf("Unable to create directory\n"); exit(1); } getch(); system("dir/p"); getch(); stat = rmdir(DIRNAME); if (!stat) printf("\nDirectory deleted\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. else { perror("\nUnable to delete directory\n"); exit(1); } return 0; } 函数大全(s 开头) 函数名: sbrk 功 能: 改变数据段空间位置 用 法: char *sbrk(int incr); 程序例: #include #include int main(void) { printf("Changing allocation with sbrk()\n"); printf("Before sbrk() call: %lu bytes free\n", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. (unsigned long) coreleft()); sbrk(1000); printf(" After sbrk() call: %lu bytes free\n", (unsigned long) coreleft()); return 0; } 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); 程序例: #include #include int main(void) { char label[20]; char name[20]; int entries = 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int loop, age; double salary; struct Entry_struct { char name[20]; int age; float salary; } entry[20]; /* Input a label as a string of characters restricting to 20 characters */ printf("\n\nPlease enter a label for the chart: "); scanf("%20s", label); fflush(stdin); /* flush the input stream in case of bad input */ /* Input number of entries as an integer */ printf("How many entries will there be? (less than 20) "); scanf("%d", &entries); fflush(stdin); /* flush the input stream in case of bad input */ /* input a name restricting input to only letters upper or lower case */ for (loop=0;loop #include int main(void) { char *p; /* Looks for TLINK and returns a pointer to the path */ p = searchpath("TLINK.EXE"); printf("Search for TLINK.EXE : %s\n", p); /* Looks for non-existent file */ p = searchpath("NOTEXIST.FIL"); printf("Search for NOTEXIST.FIL : %s\n", p); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: sector 功 能: ;uv^kXEQ-i WGb:S (u ?l: v o i d f a r s e c t o r ( i n t x , i n t y , i n t s t a n g l e , i n t e n d a n g l e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i o n * / i n t g d r i v e r = D E T E C T , g mode, errorcode; int midx, midy, i; int stangle = 45, endangle = 135; int xrad = 100, yrad = 50; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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)); print???????業硤?枠瑥慭硸??项???涠摩??敧浴硡?????????潬灯 璠牨畯桧璠敨暠汩?慰瑴牥獮????暠牯???呐彙????单剅???榠???? 箠 ?????? 敳 ? 桴 ? 楦 汬 玠 祴 敬 ?????? 敳 晴 汩 獬 祴 敬 椨 ? 敧 浴 硡 潣 潬?????????牤睡璠敨玠捥潴?汳捩??????玠捥潴?業硤?業祤?瑳湡汧? 斠摮湡汧?碠慲?禠慲??????枠瑥档????綠?????汣慥?灵????掠潬敳牧 灡?????敲畴湲??????? 函 数 名 : segread 功 能: 读段寄存器值 用 法: void segread(struct SREGS *segtbl); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { struct SREGS segs; segread(&segs); printf("Current segment register settings\n\n"); printf("CS : % X D S : % X \ n " , s e g s . c s , s e g s . d s ) ; p r i n t f ( " E S : % X S S : % X \ n " , s e g s . e s , s e g s . s s ) ; r e t u r n 0 ; } yQpe T: s e t a c t i v e p a g e  ?R y?: ??n tVb_“?úQ;m¨Ru? (u ?l: v o i d f a r s e t a c t i v e p a g e ( i n t p a g e n u m ) ; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > #include #include int main(void) { /* select a driver and mode that supports */ /* multiple pages. */ int gdriver = EGA, gmode = EGAHI, errorcode; int x, y, 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)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } x = getmaxx() / 2; y = getmaxy() / 2; ht = textheight("W"); /* select the off screen page for drawing */ setactivepage(1); /* draw a line on page #1 */ line(0, 0, getmaxx(), getmaxy()); /* output a message on page #1 */獳憠祮殠祥璠?慨瑬???????敳敬瑣 撠慲楷杮璠?慰敧??????敳慴瑣癩灥条???????澠瑵異??敭獳条?澠?慰 敧??????畯瑴硥硴??禠?吢楨?獩炠条?〣∮????畯瑴硥硴??禠栫??牐獥? 湡?敫?潴皠敩?慰敧??????枠瑥档??????玠汥捥?慰敧??獡璠敨皠獩扩 敬炠条?????敳癴獩慵灬条???????掠敬湡疠?????敧捴?????汣獯来慲 桰 ???? 犠 瑥 牵 ??? 紋 ?????? yQpe T: s e t a l l p a l l e t t e Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. ?R y?: cc?[1e _9e?S@b g?v ?r? g??r? (u ?l: v o i d f a r s e t a l l p a l l e t t e ( s t r u c t p a l e t t e , f a r * p a l l e t t e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i o n */ int gdriver = DETECT, gmode, errorcode; struct palettetype pal; int color, maxcolor, ht; int y = 10; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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); /*璠牥業慮整瞠瑩?湡斠牲牯掠摯?????????慭捸汯牯? 枠瑥慭捸汯牯????梠????整瑸敨杩瑨∨???????牧扡憠掠灯?景璠敨炠 污瑥整????枠瑥慰敬瑴?瀦污??????楤灳慬?桴?敤慦汵?慰敬瑴?潣潬 獲????暠牯?潣潬??掠汯牯?慭捸汯牯?潣潬??????????敳捴汯牯挨汯 牯?????玠牰湩晴洨杳??汯牯?搥?掠汯牯?????澠瑵整瑸祸ㄨ??涠 杳?????禠??瑨???綠?????慷瑩暠牯憠殠祥????枠瑥档??????抠慬正澠 瑵璠敨掠汯牯?湯?祢澠敮????暠牯?潣潬??掠汯牯?慭捸汯牯?潣潬?+) { setpalette(color, BLACK); getch(); } /* restore the palette colors */ setallpalette(&pal); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* clean up */ getch(); closegraph(); return 0; } 函数名: setaspectratio 功 能: 设置图形纵横比 用 ?l: v o i d f a r s e t a s p e c t r a t i o ( i n t x a s p , i n t y a s p ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i o n * / Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. i n t g d r i v e r = D E T E C T , g m o d e , e r r o r c o d e ; i n t x asp, yasp, 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(??????枠瑥掠 牵敲瑮憠灳捥?慲楴?敳瑴湩 獧????枠瑥獡数瑣慲楴?砦獡??慹灳??????牤睡溠牯慭?楣捲敬????掠 物汣?業硤?業祤??????枠瑥档??????掠慬牥璠敨玠牣敥?????汣慥摲癥 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 捩???????摡番瑳璠敨憠灳捥?潦??楷敤掠物汣?????敳慴灳捥牴瑡潩砨 獡??禠獡????掠物汣?業硤?業祤??????枠瑥档??????憠橤獵?桴?獡数 瑣暠牯憠溠牡潲?楣捲敬????掠敬牡敤楶散????玠瑥獡数瑣慲楴?慸灳? 慹灳土????楣捲敬洨摩?涠摩?????????汣慥?灵????枠瑥档????掠 l o s e g r a p h ( ) ; r e t u r n 0 ; } yQpe T: s e t b k c o l o r  ?R y?: (u ?r? g??nS_MRì?of??r? (u ?l: v o i d f a r s e t b k c o l o r ( i n t c o l o r ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { / * s e l e c t a d river and mode that supports */ /* multiple background colors. */ int gdriver = EGA, gmode = EGAHI, errorcode; int bkcol, maxcolor, x, y; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } /* maximum color index supported */ maxcolor = getmaxcolor(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* for centering text messages */ settextjustify(CENTER_TEXT, CENTER_TEXT); x = getmaxx() / 2?????澠瑵異??敭獳慳敧??????晩?止潣??垠????? 敳捴汯牯???啌??????灳楲瑮?獭??慂正牧畯摮掠汯牯?搥?抠捫汯????? 澠瑵整瑸祸砨??涠杳?????枠瑥档????綠?????汣慥?灵????掠潬敳牧 灡?????敲畴湲????????? yQpe T: s e t b l o c k ?R y?: ?O9eHQMRò] RM‘?vD O S X[¨Pμk'Y \ (u ?l: i n t s e t b l o c k ( i n t s e g , i n t n e w s i z e ) ; z?^?O: # i n c l u d e < d o s . h > # i n c l u d e < a l l o c . h > # i n c l u d e < s t d i o . h > # i n c l u d e < s t d l i b . h > i n t m a i n ( v o i d ) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. u n s i g n e d i n t s i z e , s e g p ; i n t s t a t ; s i z e = 6 4 ????碠????日?祢整?????瑳瑡?憠汬捯敭?楳 敺?猦来????榠?猨慴????????炠楲瑮??汬捯瑡摥涠浥牯?瑡玠来敭瑮? 堥湜?玠来????斠獬???箠????炠楲瑮??楡敬?涠硡浩浵溠浵敢?景炠牡 条慲桰?癡楡慬汢?獩■層≮?????瑳瑡?????斠楸?????綠???玠慴??敳 扴潬正猨来?玠穩??????榠?猨慴????????炠楲瑮??灸湡敤?敭潭祲抠潬 正憠?敳浧湥?■屘≮?敳灧????汥敳????炠楲瑮??楡敬?涠硡浩浵溠浵 敢?景炠牡条慲桰?癡楡慬汢?獩■層≮????????玠慴?????牦 e e m e m ( s e g p ) ; r e t u r n 0 ; } yQpe T: s e t b u f  ?R y?: ?b 2Q:S NAm?vT? (u ?l: v o i d s e t b u f ( F I L E * s t e a m , c h a r * b u f ) ; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. z?^?O: # i n c l u d e < s t d i o . h > / * B U F S I Z i s d e f i n e d i n s t d i o . h * / c h a r o u t b u f 璠敨玠慴摮牡?畯灴瑵玠牴慥?????敳扴晵猨摴畯? 澠瑵畢??????炠瑵玠浯?档牡捡整獲榠瑮?桴?畢晦牥????炠瑵?吢楨?獩 憠璠獥?景抠晵敦敲?畯灴瑵尮屮≮????異獴∨桔獩澠瑵異?楷汬枠?湩 潴澠瑵畢屦≮????異獴∨湡?潷??灡数牡疠瑮汩璠敨抠晵敦屲≮???? 異獴∨楦汬?灵澠?敷暠畬桳璠敨玠牴慥?湜??????暠畬桳璠敨澠瑵異? 畢 晦 牥 ???? 暠 汦 獵 ? 瑳 潤 瑵 ???? 犠 瑥 牵 ??? 紋 ?????? 函数名: setcbrk 功 能: 设置 Control-break 用 法: int setcbrk(int value); 程序例: #include #include #include int main(void) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { int break_flag; printf("Enter 0 to turn control break off\n"); printf("Enter 1 to turn control break on\n"); break_flag = getch() - 0; setcbrk(break_flag); if (getcbrk()) printf("Cntrl-brk flag is on\n"); else printf("Cntrl-brk flag is off\n"); return 0; } 函数名: setcolor 功  y?: ??n S_MR;u?~??r? Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. (u ?l: v o i d f a r s e t c o l o r ( i n t c o l o r ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * s e l e c t a d r i v e r a n d m o d e t h a t s u p p o r t s * / / * m u l t i p l e d r a w i n g c o l o r s . */ int gdriver = EGA, gmode = EGAHI, errorcode; int color, maxcolor, x, y; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 ?????????涠硡浩浵掠汯 牯榠摮硥玠灵潰瑲摥????涠硡潣潬??敧浴硡潣潬???????潦?散瑮牥湩? 整瑸涠獥慳敧?????敳瑴硥橴獵楴祦?久?归?员??呎剅呟塅????碠?枠瑥 慭硸??项???禠?枠瑥慭祸??项?????沠潯?桴潲杵?桴?癡楡慬汢?潣潬 獲????暠牯?潣潬??掠汯牯?慭捸汯牯?潣潬???????????掠敬牡璠敨玠 牣 敥??????掠 敬 牡 敤 楶 散 ????????敳敬瑣憠溠睥抠捡杫潲湵 ?潣 潬??????玠瑥潣潬?潣潬????????畯灴瑵憠涠獥獳条??????玠牰湩晴洨 杳??汯牯?搥?掠汯牯) ; o u t t e x t x y ( x , y , m s g ) ; g e t c h ( ) ; } / * c l e a n u p * / c l o s e g r a p h ( ) ; r e t u r n 0 ; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } yQpe T: s e t d a t e  ?R y?: ??n D O S ?e?g (u ?l: v o i d s e t d a t e ( s t r u c t d a t e * d a t e b l k ) ; z?^?O: # i n c l u d e < s t d 据畬敤?潤????湩?慭湩瘨楯??笋???瑳畲瑣撠 瑡?敲敳????瑳畲瑣撠瑡?慳敶摟瑡????枠瑥慤整?慳敶摟瑡????炠楲瑮? 伢楲楧慮?慤整尺≮????祳瑳浥∨慤整?????敲敳?慤祟慥???????犠獥 瑥搮彡慤??????敲敳?慤浟湯?????玠瑥慤整?敲敳?????牰湩晴∨慄整 憠瑦牥玠瑥楴杮尺≮????祳瑳浥∨慤整?????敳摴瑡?猦癡彥慤整???? 牰湩晴∨慂正璠?牯杩湩污撠瑡?湜????玠獹整?搢瑡≥????犠瑥牵??? 紋?????? yQpe T: s e t d i s k  ?R y?: ??n S_MRáx?vq?¨RhV (u ?l: i n t s e t d i s k ( i n t d r i v e ) ; z?^?O: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < s t d i o . h > # i n c l u d e < d i r . h > i n t m a i n ( v o i d ) { i n t s a v e , d i s k , d i s k s ; / * s a v e o r i g i n a l d r i v e * / ???楤歳??敳摴 獩?慳敶????牰湩晴∨搥沠杯捩污撠楲敶?湯璠敨玠獹整屭屮≮?楤 歳??????炠楲瑮璠敨撠楲敶沠瑥整獲憠慶汩扡敬????炠楲瑮??慶汩扡 敬撠楲敶?湜????暠牯?楤歳??搻獩????搫獩?????????敳摴獩?楤歳????? 榠?搨獩??枠瑥楤歳???????炠楲瑮?┢?撠楲敶榠?癡楡慬汢履≮?楤 歳??????????玠瑥楤歳猨癡?????敲畴湲????????? yQpe T: s e t d t a  ?R y?: ??n áx?v O“?:S0W@W (u ?l: v o i d s e t d t a ( c h a r f a r * d t a ) ; z?^?O: # i n c l u d e < p r o c e s s . h > Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < s t r i n g . h > # i n c l u d e < s t d i o . h > # i n c l u d e < d o s . h > i n t m a i n ( v o i d ) { c h a r l i n e [ 8 0 ] , f a r * s a v e _ d t a ; c h a r b u f f e r [ 2 5 6 ] = " S E T D T A t e s t ! " ; struct fcb blk; int result; /* get new file name from user */ printf("Enter a file name to create:"); gets(line); /* parse the new file name to the dta */ parsfnm(line, &blk, 1); printf("%d %s\n", blk.fcb_drive, blk.fcb_name); /* request DOS services to create file */ if (bdosptr(0x16, &blk, 0) == -1) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. perror("Error creating file"); exit(1); } /* save old dta and set new dta */ save_dta = getdta(); setdta(buffer)?????瞠楲整溠睥犠捥牯獤????抠歬昮扣牟捥楳敺? 项????抠歬昮扣牟湡潤??????犠獥汵??慲摮睢?戦歬?????炠楲瑮?爢獥 汵??搥湜?犠獥汵?????晩?爡獥汵?????炠楲瑮?圢楲整侠屋≮????汥 敳????????数牲牯∨楄歳斠牲牯??????硥瑩ㄨ?????????犠煥敵瑳?协玠 牥楶散?潴掠潬敳璠敨暠汩?????晩?摢獯瑰?砰??戦歬????????箠???? 炠牥潲??牲牯掠潬楳杮暠汩≥?????斠楸?????綠?????敲敳?桴?汯? 瑤?????敳摴慴猨癡彥瑤????犠瑥牵???紋??? yQpe T: s e t f i l l p a t t e r n ?R y?: ?éb(u7b?[IN?vkXEQ!j _ (u ?l: v o i d f a r s e t f i l l p a t t e r n ( c h a r f a r * u p a t t e r n , i n t c o l o r ) ; z?^?O: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i on */ int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* a user defined fill pattern */ char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x24, 0x24, 0x07, 0x00}; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ ??????枠瑥档??????硥瑩ㄨ???整浲湩瑡?楷桴憠?牥潲?潣敤???? 綠???涠硡??敧浴硡?????慭祸?枠瑥慭祸????玠瑥潣潬?敧浴硡潣 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 潬???????玠汥捥??獵牥撠晥湩摥暠汩?慰瑴牥?????敳晴汩灬瑡整湲瀨 瑡整湲?敧浴硡潣潬???????暠汩?桴?捳敲湥瞠瑩?桴?慰瑴牥????? 慢????慭硸?慭祸??????汣慥?灵????枠瑥档????掠潬敳牧灡?????敲畴 湲????????? yQpe T: s e t f i l l s t y l e ? R y?: ??n kXEQ!j _?T??r? (u ?l: v o i d f a r s e t f i l l s t y l e ( i n t p a t t e r n , i n t c o l o r ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t r i n g . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > / * t h e n a m e s o f t h e f i l l s t y l e s s u p p o r t e d * / char *fname[] = { "EMPTY_FILL", "SOLID_FILL", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "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; int style, midx, midy; char stylestr[40]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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 */ } mid??敧浴硡???????業祤?枠瑥慭祸??项????潦?猨祴敬??偍奔??? 玠祴敬?喠?归???瑳汹???????????玠汥捥?桴?楦汬玠祴敬??????敳晴汩 獬祴敬猨祴敬?敧浴硡潣潬?????????潣癮牥?瑳汹?湩潴憠玠牴湩?????? 玠牴灣?瑳汹獥牴?湦浡孥瑳汹嵥???????暠汩??慢??????抠牡搳〨??涠 摩???業祤??????????澠瑵異??敭獳条??????澠瑵整瑸祸洨摩?涠摩?玠 祴敬瑳????????慷瑩暠牯憠殠祥??????敧捴??????掠敬牡敤楶散???? 綠?????汣慥?灵?/ g e t c h ( ) ; c l o s e g r a p h ( ) ; r e t u r n 0 ; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. yQpe T: s e t f t i m e  ?R y?: ??n ?e?N?e?g?T?e?? (u ?l: i n t s e t f t i m e ( i n t h a n d l e , s t r u c t f t i m e * f t i m e p ) ; z?^?O: # i n c l u d e < s t d i o . h > # i n c l u d e < p r o c e s s . h > # i n c l u d e < f c n t l . h > # i n c l u d e < i o . h > i n t m a i n ( 潶摩?????玠牴捵?瑦浩?楦敬???????灦????晩?昨?? 潦数?吢卅????眢???亠??????????数牲牯∨牅潲???????硥瑩ㄨ???????? 灦楲瑮?灦?琢獥楴杮?尮≮??????潬摡暠楴敭玠牴捵畴敲瞠瑩?敮?楴 敭憠摮撠瑡?????楦敬?瑦瑟敳??????楦敬?瑦浟湩?????暠汩瑥昮彴潨 牵?????暠汩瑥昮彴慤??????楦敬?瑦浟湯桴?????暠汩瑥昮彴敹牡? 项??????桳睯掠牵敲瑮撠物捥潴祲暠牯璠浩?湡?慤整????玠獹整?搢 物咠卅?????????档湡敧璠敨璠浩?湡?慤整玠慴灭*/ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. setftime(fileno(fp), &filet); /* close and remove the temporary file */ fclose(fp); system("dir TEST.$$$"); unlink("TEST.$$$"); return 0; } 函数名: setgraphbufsize 功 能: 改变内部图形缓冲区的大小 用 法: unsigned far setgr a p h b u f s i z e ( u n s i g n e d b u f s i z e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > # d e f i n e B U F S I Z E 1 0 0 0 / * i n t e r n a l g r a p h i c s b u f f e r s i z e * / i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i o n * / i n t g d r i ver = DETECT, gmode, errorcode; int x, y, oldsize; char msg[80]; /* set the size of the internal graphics buffer */ /* before making a call to initgraph. */ oldsize = setgraphbufsize(BUFSIZE); /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorc 摯??????炠楲 瑮?倢敲獳憠祮殠祥璠?慨瑬??????枠瑥档??????硥瑩ㄨ???整浲湩瑡? 楷桴憠?牥潲?潣敤????綠???碠?枠瑥慭硸??项???禠?枠瑥慭祸?? 项?????澠瑵異?潳敭涠獥慳敧?????灳楲瑮?獭??片灡楨獣抠晵敦?楳敺? 搥?????????敳瑴硥橴獵楴祦?久?归?员??呎剅呟塅????澠瑵整瑸祸砨?? 涠杳????灳楲瑮?獭??汏?牧灡楨獣抠晵敦?楳敺?搥?澠摬楳敺????畯瑴 硥硴??禠琫硥桴楥桧?圢??獭??????掠敬湡疠?????敧捴?????汣獯来慲 桰????犠瑥牵???紋 yQpe T: s e t g r a p h m o d e ?R y?: \ ?|?~??n btVb_!j _ N nO\ (u ?l: v o i d f a r s e t g r a p h m o d e ( i n t m o d e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t o d e t e c t i o n * / i n t gdriver = DETECT, gmode, errorcode; int x, y; /* 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 */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. x = getmaxx() / 2; y = getmaxy() / 2; ???澠瑵異??敭獳条?????敳瑴硥橴獵楴祦?久?归?员??呎剅呟塅????澠 瑵整瑸祸砨???牐獥?湡?敫?潴斠楸?牧灡楨獣?????敧捴???????敲瑳牯? 祳瑳浥璠?整瑸涠摯?????敲瑳牯捥瑲潭敤????炠楲瑮?圢?敲溠睯榠? 整瑸涠摯?湜????炠楲瑮?倢敲獳憠祮殠祥璠?敲畴湲璠?牧灡楨獣涠 摯?????枠瑥档??????犠瑥牵?潴枠慲桰捩?潭敤????玠瑥牧灡浨摯?敧 杴慲桰潭敤???????畯灴瑵憠涠獥慳敧????玠瑥整瑸番瑳晩??呎剅呟 塅??久?归?员????畯瑴硥硴??禠?圢?敲抠捡?湩枠慲桰捩 s m o d e . " ) ; o u t t e x t x y ( x , y + t e x t h e i g h t ( " W " ) , " P r e s s a n y k e y t o h a l t : " ) ; / * c l e a n u p * / g e t c h ( ) ; c l o s e g r a p h ( ) ; r e t u r n 0 ; } yQpe T: s e t j m p ?R y?: ^—@\è?l??y (u ?l: i n t s e t j m p ( j m ???湩汣摵?猼瑥浪????潶摩玠扵 潲瑵湩?潶摩???浪彰畢?番灭牥??椋瑮涠楡?潶摩?????榠瑮皠污敵???? 慶畬??敳橴灭樨浵数????榠?瘨污敵????????牰湩晴∨潌杮浪?楷桴皠 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 污敵■層≮?慶畬??????硥瑩瘨污敵???????炠楲瑮??潢瑵璠?慣汬玠扵 潲瑵湩???湜????玠扵潲瑵湩?????敲畴湲?????瘋楯?畳牢畯楴敮瘨楯?? 笋 ??? 潬 杮 浪 ? 番 灭 牥 ??? 紋 ?????? yQpe T: s e t l i n e s t y l e  ?R y?: ??n S_MR;u?~?[|^?T{|?W (u ?l: v o i d f a r s e t l i n e s t y l e ( i n t l i n e s t y p e , u n s i g n e d u p a t t e r n ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t r i n g . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > / * t h e n a m e s o f t h e l i n e s t y l e s supported */ char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. "DASHED_LINE", "USERBIT_LINE" }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int style, midx, midy, userpat; char stylestr[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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; /* a user defined line pattern */ /* binary: "0000000000000001" */ userpat = 1; for (style=SOLID_LINE; style<=USERBIT_LINE; style++) { /* se?瑳汹?湩潴憠玠牴湩??????玠牴灣?瑳汹獥牴?湬浡孥瑳汹 嵥???????撠慲??楬敮??????楬敮〨??涠摩???業祤???????撠慲??敲瑣 湡汧??????犠捥慴杮敬〨??枠瑥慭硸??敧浴硡?????????畯灴瑵憠涠獥 慳敧??????畯瑴硥硴?業硤?業祤?瑳汹獥牴???????瞠楡?潦??敫?????? 枠瑥档??????汣慥摲癥捩??????????掠敬湡疠?????汣獯来慲桰????犠 瑥牵???紋???????? 函 数名: setmem 功 能: 存值到存储区 用 法: void setmem(void *addr, int len, char value); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include int main(void) { char *dest; dest = calloc(21, sizeof(char)); setmem(dest, 20, 'c'); printf("%s\n", dest); return 0; } 函数名: setmode 功 能: 设置打开文件方式 用 法: int setmode(int handle, unsigned mode); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include int main(void) { int result; result = setmode(fileno(stdprn), O_TEXT); if (result == -1) perror("Mode not available\n"); else printf("Mode successfully switched\n"); return 0; } 函数名: setpalette Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 改变调色板的颜色 用 法: void far setpalette(i int y = 10; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } maxcolor = getmaxcolor(); ht = 2 * textheight("W"); /* display the default colors */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. for (color=1; color<=maxcolor; color++) { setcolor(color); sprintf(msg, "Color: %d", color); outtextxy(1, y, msg); y += ht; } /* wait for a key */ getch(); /* black out the colors one by one */ for (color=1; color<=maxcolor; color++) { setpalette(color, BLACK); getch(); } /* clean up */ closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. ??撠獩汰祡璠敨撠晥畡瑬掠汯牯?????潦?挨汯牯??潣潬?洽硡潣潬?掠 汯牯????箠????玠瑥潣潬?潣潬??????灳楲瑮?獭??潃潬?■≤?潣 潬??????畯瑴硥硴??禠?獭????????梠?????????瞠楡?潦??敫?????敧 捴???????汢捡?畯?桴?潣潬獲澠敮抠?湯?????潦?挨汯牯??潣潬?洽硡 潣潬?掠汯牯????箠????玠瑥慰敬瑴?潣潬?????????枠瑥档????綠????? 汣慥?灵????掠潬敳牧灡?????敲畴湲????????? yQpe T: s e t r g b p a l e t t e ?R y?: ?[INI B M 8 5 1 4 tVb_aS?v??r? (u ?l: v o i d f a r s e t r g b p a l e t t e ( i n t c o l o r n u m , i n t r e d , i n t g r e e n , i n t b l u e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { / * s e l e c t a d r iver and mode that supports the use */ /* of the setrgbpalette function. */ int gdriver = VGA, gmode = VGAHI, errorcode; struct palettetype pal; int i, ht, y, xmax; /* 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 憠祮殠祥璠?慨瑬??????枠瑥档??????硥瑩ㄨ???整 浲湩瑡?楷桴憠?牥潲?潣敤????綠?????牧扡憠掠灯?景璠敨炠污瑥 整????枠瑥慰敬瑴?瀦污??????牣慥整枠慲?捳污?????潦?椨???慰?楳 敺???????玠瑥杲灢污瑥整瀨污挮汯牯孳嵩???榠?????????撠獩汰祡璠 敨枠慲?捳污?????瑨?枠瑥慭祸???????浸硡?枠瑥慭硸????禠?????暠 牯???榠瀼污献穩?榠????箠????玠瑥楦汬瑳汹?体?彄?????????慢??禠? 浸硡??瑨?????禠??瑨???綠?????汣 e a n u p * / Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. g e t c h ( ) ; c l o s e g r a p h ( ) ; r e t u r n 0 ; } yQpe T: s e t t e x t j u s t i f y  ?R y?: :NtVb_yQpe??n ?e,g?vù[P?1e _ (u ?l: v o i d f a r s e t t e x t j u s t i f y ( i n t h o r i z , i n t v e r t ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l ude /* function prototype */ void xat(int x, int y); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* horizontal text justification settings */ char *hjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" }; /* vertical text justification settings */ char *vjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, hj, vj; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; /* loop through text justifi 慣楴湯?????潦?栨??呆呟塅?梠?刽?呈呟 塅?梠??????暠牯?橶??彔?员?橶???彔?员?橶????????????掠敬牡敤楶 散?????????敳?桴?整瑸檠獵楴楦慣楴湯???????玠瑥整瑸番瑳晩?橨? 橶?????????牣慥整憠涠獥慳敧玠牴湩????????灳楲瑮?獭??猥?猥?梠 番瑳桛嵪?橶獵孴橶??????牣慥整掠潲獳梠楡獲澠?桴?捳敲湥????慸? 業硤?業祤?????????畯灴瑵璠敨涠獥慳敧???????澠瑵整瑸祸洨摩?涠 摩?涠杳???????敧捴??????綠?????汣慥?灵?? closegraph(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } /* draw an "x" at (x, y) */ void xat(int x, int y) { line(x-4, y, x+4, y); line(x, y-4, x, y+4); } 函数名: settextstyle 功 能: 为图形输出设置当前的文本属性 用 法: void far settextstyle (int font, int direct i o n , c h a r s i z e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < c o n i o . h > / * t h e n a m e s o f t h e t e x t s t y l e s s u p p o r t e d * / c h a r * f n a m e [ ] = { " D E F A U L T f o n t " , " T R I P L E X f o n t " , " S MALL font", "SANS SERIF font", "GOTHIC font" }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int style, midx, midy; int size = 1; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s 湜?枠慲桰牥潲浲杳攨牲牯潣敤?????? 牰湩晴∨牐獥?湡?敫?潴梠污???????敧捴??????斠楸????璠牥業慮整 瞠瑩?湡斠牲牯掠摯?????????業硤?枠瑥慭硸??项???涠摩??敧浴 硡???????玠瑥整瑸番瑳晩??呎剅呟塅??久?归?员??????潬灯璠牨畯桧 璠敨憠慶汩扡敬璠硥?瑳汹獥????暠牯?瑳汹????彔但呎?瑳汹??呏?彃 但呎?瑳汹??????????汣慥摲癥捩??????榠?猨祴敬??剔偉?彘但呎?????? 玠穩?????????玠汥捥?桴?整瑸玠祴敬??????敳瑴硥獴祴敬猨祴敬, HORIZ_DIR, size); /* output a message */ outtextxy(midx, midy, fname[style]); getch(); } /* clean up */ closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: settextstyle 功 能: 为图形输出设置当前的文本属性 用 法: void far settexts t y l e ( i n t f o n t , i n t d i r e c t i o n , c h a r s i z e ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > / * t h e n a m e s o f t h e t e x t s t y l e s s u p p o r t e d * / c h a r * f n a m e [ ] = { " D E F A U L T f o n t " , " T R I P L E X f o n t", "SMALL font", "SANS SERIF font", "GOTHIC font" Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. }; int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int style, midx, midy; int size = 1; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { 牰湩晴∨片灡楨獣斠牲牯?猥湜?枠慲桰牥潲浲杳攨牲牯潣 敤??????牰湩晴∨牐獥?湡?敫?潴梠污???????敧捴??????斠楸????璠牥 業慮整瞠瑩?湡斠牲牯掠摯?????????業硤?枠瑥慭硸??项???涠摩??敧 浴硡???????玠瑥整瑸番瑳晩??呎剅呟塅??久?归?员??????潬灯璠牨畯 桧璠敨憠慶汩扡敬璠硥?瑳汹獥????暠牯?瑳汹????彔但呎?瑳汹??呏? 彃但呎?瑳汹??????????汣慥摲癥捩??????榠?猨祴敬??剔偉?彘但 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 呎??????玠穩?????????玠汥捥?桴?整瑸玠祴敬?? settextstyle(style, HORIZ_DIR, size); /* output a message */ outtextxy(midx, midy, fname[style]); getch(); } /* clean up */ closegraph(); return 0; } 函数名: settime 功 能: 设置系统时间 用 法: void settime(struct time *timep); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { struct time t; gettime(&t); printf("The current minute is: %d\n", t.ti_min); printf("The current hour is: %d\n", t.ti_hour); printf("The current hundredth of a second is: %d\n", t.ti_hund); printf("The current second is: %d\n", t.ti_sec); /* Add one to the minutes struct element and then call settime */ t.ti_min++; settime(&t); return 0; } 函 pe T: s e t u s e r c h a r s i z e ?R y?: :Naw?‘W[SO9e?SW[&{?[|^?T??|^ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. (u ?l: v o i d f a r s e t u s e r c h a r s i z e ( i n t m u l t x , i n t d i r x , i n t m u l t y , i n t d i r y ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * r e q u e s t a u t odetection */ int gdriver = DETECT, gmode, errorcode; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ 汹?????敳瑴硥獴祴敬吨??塅?乏??剏婉?剉???????涠癯?潴璠敨璠硥? 瑳牡楴杮炠獯瑩潩?????潭敶潴〨?敧浴硡?????????澠瑵異?潳敭溠牯 慭?整瑸????澠瑵整瑸∨潎浲???????慭敫璠敨璠硥???桴?潮浲污瞠摩 桴????玠瑥獵牥档牡楳敺ㄨ????????澠瑵整瑸∨桓牯???????涠歡?桴? 整瑸?璠浩獥溠牯慭?楷瑤?????敳畴敳捲慨獲穩??????????畯瑴硥?圢 摩≥??????汣慥?灵????枠瑥档????掠潬敳牧灡?????敲畴湲??????? yQpe T: s e t v b u f  ?R y?: ?b 2Q:S NAm?vsQ (u ?l: i n t s e t v b u f ( F I L E * s t r e a m , c h a r * b u f , i n t t y p e , u n s i g n e d s i z e ) ; z?^?O: # i n c l u d e < s t d i o . h > i n t m a i n ( v o i d ) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. F I L E * i n p u t , * o u t p u t ; c h a r b u f r [ 5 1 2 ] ; i n p u t = f o p e n ( " f i l e . i n " , " r + b " ) ; o u t p u t = f o p 湥∨楦敬漮瑵?????????敳?灵榠灮瑵玠 牴慥?潦?業楮慭?楤歳憠捣獥?????疠楳杮澠牵澠湷掠慨慲瑣牥抠晵 敦?????晩?敳癴畢?湩異?抠晵?徠佉???㈱????????牰湩晴∨慦汩摥璠? 敳?灵抠晵敦?潦?湩異?楦敬湜????斠獬?????牰湩晴∨畢晦牥玠瑥疠? 潦?湩異?楦敬湜??????玠瑥疠?畯灴瑵玠牴慥?潦?楬敮抠晵敦楲杮疠 楳杮玠慰散璠慨?????楷汬抠?扯慴湩摥璠牨畯桧憠?湩楤敲瑣掠污?潴 涠污潬?????晩?敳癴畢?畯灴瑵?啎???????????????炠楲瑮?昢楡敬?潴 玠瑥疠?畢晦牥暠牯澠瑵 put file\n"); else printf("buffer set up for output file\n"); /* perform file I/O here */ /* close files */ fclose(input); fclose(output); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: setvect 功 能: 设置中断矢量入口 用 法: void setvec t ( i n t i n t r _ n u m , v o i d i n t e r r u p t ( * i s r ) ( ) ) ; z?^?O: / * * * N O T E : T h i s i s a n i n t e r r u p t s e r v i c e r o u t i n e . Y o u c a n N O T c o m p i l e t h i s p r o g r a m w i t h T e s t S t a c k O v e r f l o w t u r n e d o n a n d g e t a n e x e c u t a b l e f i l e w h i c h w i l l o p e r a t e c o r r e c t l y . * / # i n c l u 敤?瑳楤????湩汣摵?搼獯栮??椣据畬敤?潣楮????搣晥湩? 义剔??????桔?汣捯?楴正榠瑮牥畲瑰???瘋楯?湩整牲灵??漪摬慨摮敬? 瘨楯???椋瑮掠畯瑮???瘋楯?湩整牲灵?慨摮敬?潶摩?????榠据敲獡?桴? Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 汧扯污掠畯瑮牥????掠畯瑮?????慣汬璠敨澠摬犠畯楴敮????澠摬慨 摮敬???紋??湩?慭湩瘨楯??笋???慳敶璠敨澠摬榠瑮牥畲瑰皠捥潴????? 汯桤湡汤牥?枠瑥敶瑣?呎?????湩瑳污?桴?敮?湩整牲灵?慨摮敬????? 敳癴捥?义剔?慨摮敬?????潬灯疠瑮汩璠敨掠畯瑮牥斠捸敥獤项??? w h i l e ( c o u n t < 2 0 ) p r i n t f ( " c o u n t i s % d \ n " , c o u n t ) ; / * r e s e t t h e o l d i n t e r r u p t h a n d l e r * / s e t v e c t ( I N T R , o l d h a n d l e r ) ; r e t u r n 0 ; } yQpe T: s e t v e r i f y  ?R y?: ??n ??á??r ` (u 栮??椣据畬敤?潣楮????湩汣摵?搼獯栮??椋瑮涠楡?潶摩?????榠 瑮皠牥晩役汦条????牰湩晴∨湅整??潴玠瑥皠牥晩?汦条澠晦湜???? 炠楲瑮??瑮牥?璠?敳?敶楲祦暠慬?湯湜?????敶楲祦晟慬??敧捴??????? 玠瑥敶楲祦瘨牥晩役汦条????榠?木瑥敶楲祦??????牰湩晴∨佄?敶楲 祦暠慬?獩澠屮≮????汥敳????炠楲瑮??协皠牥晩?汦条榠?景屦≮???? Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 犠 瑥 牵 ??? 紋 ?????? yQpe T: s e t v i e w p o r t  ?R y?: :NtVb_“?úQ??n S_MR?‰?S (u ?l: v o i d f a r s e t v i e w p o r t ( i n t l e f t , i n t t o p , i n t r i g h t , i n t b o t t o m , i n t c l i p f l a g ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > # d e f i n e C L I P _ O N 1 / * a ctivates clipping in viewport */ int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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("Pres 瞠瑩?湡斠牲牯掠摯?????????敳捴汯牯木瑥慭捸汯 牯???????敭獳条?湩撠晥畡瑬暠汵?捳敲湥皠敩灷牯?????畯瑴硥 硴???????????湩撠晥畡瑬皠敩灷牯???????牣慥整憠玠慭汬牥皠敩灷 牯?????敳癴敩灷牯?????敧浴硡????敧浴硡?????偉佟??????撠獩汰祡 玠浯?整瑸????澠瑵整瑸祸〨??????〨??榠?浳污敬?楶睥潰瑲??????掠 敬 湡 疠 ????? 敧 捴 ????? 汣 獯 来 慲 桰 ???? 犠 瑥 牵 ??? 紋 ?????? yQpe T: s e t v i s u a l p a g e  ?R y?: ??n ?Sá‰tVb_u?÷S (u ?l: v o i d f a r s e t v i s u a l p a g e ( i n t p a g e n u m ) ; z?^?O: # i n c l u d e < g r a p h i c s . h > Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( v o i d ) { / * s e l e c t a d r i v e r a n d m o d e t h a t s u p p o r t s * / / * multiple pages. */ int gdriver = EGA, gmode = EGAHI, errorcode; int x, y, 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(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. exit(1); /* terminate with an error code */ } x = getmaxx() / 2; y = getmaxy() / 2; ht = textheight("W"); /* select the off screen page for drawing */ setactivepage(1); /* draw a line on page #1 */ line(0, 0, getmaxx(), getmaxy()); /* output a message on page #1 */????畯瑴硥硴??禠?吢楨?獩炠条? 〣∮????畯瑴硥硴??禠栫??牐獥?湡?敫?潴皠敩?慰敧??????枠瑥 档 ??????玠 汥 捥 ?慰 敧 ??獡 璠 敨 皠 獩 扩 敬 炠 条 ????? 敳 癴 獩 慵 灬 条???????掠敬湡疠?????敧捴?????汣獯来慲桰????犠瑥牵???紋?????? yQpe T: s e t w r i t e m o d e  ?R y?: ??n tVb_1e _ N;u?~?v“?úQ!j _ (u ?l: v o i d f a r s e t w r i t e m o d e ( i n t m o d e ) ; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. z?^?O: # i n c l u d e < g r a p h i c s . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t d i o . h > # i n c l u d e < c o n i o . h > i n t m a i n ( ) { / * r e q u e s t a u t o d e t e c t i o n * / i n t g d r i v e r = D E T E C T , gmode, errorcode; int xmax, ymax; /* 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:"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); exit(1); /* te 剏撠慲楷杮涠摯?????敳睴楲整潭敤堨剏偟呕?????? 牤睡憠沠湩?????楬敮〨??碠慭?禠慭????枠瑥档??????斠慲敳璠敨沠 湩?祢撠慲楷杮澠敶?瑩????沠湩????浸硡?浹硡????敧捴???????敳敬 瑣澠敶睲楲整撠慲楷杮涠摯?????敳睴楲整潭敤?偏彙啐??????撠慲?? 楬敮????沠湩????浸硡?浹硡??????汣慥?灵????枠瑥档????掠潬敳牧 灡?????敲畴湲????????? yQpe T: s i g n a l  ?R y?: ??n Dg NáO÷S?vù[”^¨R\O (u ?l: i n t s i g n a l ( i n t s i g , s i g f u n f n a m e ) ; z?^?O: / * T h i s e x a m p l e i n s t a l l s a s i g n a l h a n d l e r r o u t i n e f o r S I G F P E , c a t c h e s a n i n t e g e r o v e r f l o w c o n d i t i o n , m a k e s a n a d j u s t m e n t t o A X r e g i s t e r , a n d r e t u r n s . T h i s e x a m p l e program MAY cause your computer to crash, and will produce runtime errors Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. depending on which memory model is used. */ #pragma inline #include #include void Catcher(int sig, int type, int *reglist) { printf("Caught it!\n"); *(reglist + 8) = 3; /* make return AX = 3 */ } int main(void) { signal(SIGFPE, Catcher); ???湩潴???????????憠瑣癩瑡?慨摮敬???????桔?慨摮敬?敳?塁璠?? 湯犠瑥牵???桴瑡梠摡??慨灰湥摥?????桴牥?潷汵?慨敶抠敥?湡瑯敨? 硥散瑰潩?桷湥璠敨溠硥?椧瑮?????瞠獡斠數畣整?晡整?桴?搧捥?湩 瑳畲瑣潩?????憠浳??撠捥??憠?????????潮澠敶晲潬?潮?????獡???湩 潴???????????撠敯湳琧憠瑣癩瑡?????敲畴湲??????????? 函 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 数名: sin 功 能: 正弦函数 用 法: double sin(double x); 程序例: #include #include int main(void) { double result, x = 0.5; result = sin(x); printf("The sin() of %lf is %lf\n", x, result); return 0; } 函数名: sinh 功 能: 双曲正弦函数 用 法: double sinh(double x); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include int main(void) { double result, x = 0.5; result = sinh(x); printf("The hyperbolic sin() of %lf is %lf\n", x, result); return 0; } 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { int i; for (i=1; i<5; i++) { printf("Sleeping for %d seconds\n", i); s l e e p ( i ) ; } r e t u r n 0 ; } yQpe T: s o p e n ?R y?: Sb _ NqQ?N?e?N (u ?l: i n t s o p e n ( c h a r * p a t h n a m e , i n t a c c e s s , i n t s h f l a g , i n t p e r m i s s ) ; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. z?^?O: # i n c l u d e < i o . h > # i n c l u d e < f c n t l . h > # i n c l u d e < s y s \ s t a t . h > # i n 函数名: sound 功 能: 以指定频率打开 PC 扬声器 用 法: void sound(unsigned frequency); 程序例: /* Emits a 7-Hz tone for 10 seconds. Your PC may not be able to emit a 7-Hz tone. */ #include int main(void) { sound(7); delay(10000); nosound(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: spawnl 功 能: 创建并运行子程序 用 法: int spawnl(int mode, char *pathname, char *arg0, arg1, ... argn, NULL); 程序例: #include #include #include int main(void) { int result; clrscr(); result = spawnl(P_WAIT, "tcc.exe", NULL); if (result == -1) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. perror("Error from spawnl"); exit(1); } return 0; } 函数名: spawnle 功 能: 创建并运行子程序 用 法: int spawnle(int mode, char *pathname, char *arg0, arg1,..., argn, NULL); 程序例: /* spawnle() example */ #include #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int result; clrscr(); result = spawnle(P_WAIT, "tcc.exe", NULL, NULL); if (result == -1) { perror("Error from spawnle"); exit(1); } return 0; } 函数名: sprintf 功 能: 送格式化输出到字符串中 用 法: int sprintf(char *string, char *farmat [,argument,...]); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { char buffer[80]; sprintf(buffer, "An approximation of Pi is %f\n", M_PI); puts(buffer); return 0; } 函数名: sqrt 功 能: 计算平方根 用 法: double sqrt(double x); 程序例: #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. double x = 4.0, result; result = sqrt(x); printf("The square root of %lf is %lf\n", x, result); return 0; } 函数名: srand 功 能: 初始化随机数发生器 用 法: void srand(unsigned seed); 程序例: #include #include #include int main(void) { int i; time_t t; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. srand((unsigned) time(&t)); printf("Ten random numbers from 0 to 99\n\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); return 0; } 函数名: sscanf 功 能: 执行从字符串中的格式化输入 用 法: int sscanf(char *string, char *format[,argument,...]); 程序例: #include #include int main(void) { char label[20]; char name[20]; int entries = 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int loop, age; double salary; struct Entry_struct { char name[20]; int age; float salary; } entry[20]; /* Input a label as a string of characters restricting to 20 characters */ printf("\n\nPlease enter a label for the chart: "); scanf("%20s", label); fflush(stdin); /* flush the input stream in case of bad input */ /* Input number of entries as an integer */ printf("How many entries will there be? (less than 20) "); scanf("%d", &entries); fflush(stdin); /* flush the input stream in case of bad input */ /* input a name restricting input to only letters upper or lower case */ for (loop=0;loop Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #define FILENAME "TEST.$$$" int main(void) { struct stat statbuf; FILE *stream; /* open a file for update */ if ((stream = fopen(FILENAME, "w+")) == NULL) { fprintf(stderr, "Cannot open output file.\n"); return(1); } /* get information about the file */ stat(FILENAME, &statbuf); fclose(stream); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* 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; } 函数名: _status87 功 能: 取浮点状态 用 法: unsigned int _status87(void); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include int main(void) { float x; double y = 1.5e-100; printf("Status 87 before error: %x\n", _status87()); x = y; /* <-- force an error to occur */ y = x; printf("Status 87 after error : %x\n", _status87()); return 0; } 函数名: stime Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 设置时间 用 法: int stime(long *tp); 程序例: #include #include #include int main(void) { time_t t; struct tm *area; t = time(NULL); area = localtime(&t); printf("Number of seconds since 1/1/1970 is: %ld\n", t); printf("Local time is: %s", asctime(area)); t++; area = localtime(&t); printf("Add a second: %s", asctime(area)); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. t += 60; area = localtime(&t); printf("Add a minute: %s", asctime(area)); t += 3600; area = localtime(&t); printf("Add an hour: %s", asctime(area)); t += 86400L; area = localtime(&t); printf("Add a day: %s", asctime(area)); t += 2592000L; area = localtime(&t); printf("Add a month: %s", asctime(area)); t += 31536000L; area = localtime(&t); printf("Add a year: %s", asctime(area)); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%s\n", string); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: #include #include int main(void) { char destination[25]; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%s\n", destination); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strchr 功 能: 在一个串中查找给定字符的第一个匹配之处\ 用 法: char *strchr(char *str, char c); 程序例: #include #include int main(void) { char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = strchr(string, c); if (ptr) printf("The character %c is at position: %d\n", c, ptr-string); else Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("The character was not found\n"); return 0; } 函数名: strcmp 功 能: 串比较 用 法: int strcmp(char *str1, char *str2); 程序例: #include #include int main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; ptr = strcmp(buf2, buf1); if (ptr > 0) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("buffer 2 is greater than buffer 1\n"); else printf("buffer 2 is less than buffer 1\n"); ptr = strcmp(buf2, buf3); if (ptr > 0) printf("buffer 2 is greater than buffer 3\n"); else printf("buffer 2 is less than buffer 3\n"); return 0; } 函数名: strncmpi 功 能: 将一个串中的一部分与另一个串比较, 不管大小写 用 法: int strncmpi(char *str1, char *str2, unsigned maxlen); 程序例: #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include int main(void) { char *buf1 = "BBB", *buf2 = "bbb"; int ptr; ptr = strcmpi(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); if (ptr < 0) printf("buffer 2 is less than buffer 1\n"); if (ptr == 0) printf("buffer 2 equals buffer 1\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strcpy 功 能: 串拷贝 用 法: char *strcpy(char *str1, char *str2); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1); printf("%s\n", string); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strcspn 功 能: 在串中查找第一个给定字符集内容的段 用 法: int strcspn(char *str1, char *str2); 程序例: #include #include #include int main(void) { char *string1 = "1234567890"; char *string2 = "747DC8"; int length; length = strcspn(string1, string2); printf("Character where strings intersect is at position %d\n", length); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strdup 功 能: 将串拷贝到新建的位置处 用 法: char *strdup(char *str); 程序例: #include #include #include int main(void) { char *dup_str, *string = "abcde"; dup_str = strdup(string); printf("%s\n", dup_str); free(dup_str); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: stricmp 功 能: 以大小写不敏感方式比较两个串 用 法: int stricmp(char *str1, char *str2); 程序例: #include #include int main(void) { char *buf1 = "BBB", *buf2 = "bbb"; int ptr; ptr = stricmp(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (ptr < 0) printf("buffer 2 is less than buffer 1\n"); if (ptr == 0) printf("buffer 2 equals buffer 1\n"); return 0; } 函数名: strerror 功 能: 返回指向错误信息字符串的指针 用 法: char *strerror(int errnum); 程序例: #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char *buffer; buffer = strerror(errno); printf("Error: %s\n", buffer); return 0; } 函数名: strcmpi 功 能: 将一个串与另一个比较, 不管大小写 用 法: int strcmpi(char *str1, char *str2); 程序例: #include #include int main(void) { char *buf1 = "BBB", *buf2 = "bbb"; int ptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. ptr = strcmpi(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); if (ptr < 0) printf("buffer 2 is less than buffer 1\n"); if (ptr == 0) printf("buffer 2 equals buffer 1\n"); return 0; } 函数名: strncmp 功 能: 串比较 用 法: int strncmp(char *str1, char *str2, int maxlen); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc"; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); else printf("buffer 2 is less than buffer 1\n"); ptr = strncmp(buf2,buf3,3); if (ptr > 0) printf("buffer 2 is greater than buffer 3\n"); else printf("buffer 2 is less than buffer 3\n"); return(0); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: strncmpi 功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写 用 法: int strncmpi(char *str1, char *str2); 程序例: #include #include int main(void) { char *buf1 = "BBBccc", *buf2 = "bbbccc"; int ptr; ptr = strncmpi(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (ptr < 0) printf("buffer 2 is less than buffer 1\n"); if (ptr == 0) printf("buffer 2 equals buffer 1\n"); return 0; } 函数名: strncpy 功 能: 串拷贝 用 法: char *strncpy(char *destin, char *source, int maxlen); 程序例: #include #include int main(void) { char string[10]; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. char *str1 = "abcdefghi"; strncpy(string, str1, 3); string[3] = '\0'; printf("%s\n", string); return 0; } 函数名: strnicmp 功 能: 不注重大小写地比较两个串 用 法: int strnicmp(char *str1, char *str2, unsigned maxlen); 程序例: #include #include int main(void) { char *buf1 = "BBBccc", *buf2 = "bbbccc"; int ptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. ptr = strnicmp(buf2, buf1, 3); if (ptr > 0) printf("buffer 2 is greater than buffer 1\n"); if (ptr < 0) printf("buffer 2 is less than buffer 1\n"); if (ptr == 0) printf("buffer 2 equals buffer 1\n"); return 0; } 函数名: strnset 功 能: 将一个串中的所有字符都设为指定字符 用 法: char *strnset(char *str, char ch, unsigned n); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz"; char letter = 'x'; printf("string before strnset: %s\n", string); strnset(string, letter, 13); printf("string after strnset: %s\n", string); return 0; } 函数名: strpbrk 功 能: 在串中查找给定字符集中的字符 用 法: char *strpbrk(char *str1, char *str2); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { char *string1 = "abcdefghijklmnopqrstuvwxyz"; char *string2 = "onm"; char *ptr; ptr = strpbrk(string1, string2); if (ptr) printf("strpbrk found first character: %c\n", *ptr); else printf("strpbrk didn't find character in set\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strrchr 功 能: 在串中查找指定字符的最后一个出现 用 法: char *strrchr(char *str, char c); 程序例: #include #include int main(void) { char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = strrchr(string, c); if (ptr) printf("The character %c is at position: %d\n", c, ptr-string); else printf("The character was not found\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strrev 功 能: 串倒转 用 法: char *strrev(char *str); 程序例: #include #include int main(void) { char *forward = "string"; printf("Before strrev(): %s\n", forward); strrev(forward); printf("After strrev(): %s\n", forward); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strset 功 能: 将一个串中的所有字符都设为指定字符 用 法: char *strset(char *str, char c); 程序例: #include #include int main(void) { char string[10] = "123456789"; char symbol = 'c'; printf("Before strset(): %s\n", string); strset(string, symbol); printf("After strset(): %s\n", string); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strspn 功 能: 在串中查找指定字符集的子集的第一次出现 用 法: int strspn(char *str1, char *str2); 程序例: #include #include #include int main(void) { char *string1 = "1234567890"; char *string2 = "123DC8"; int length; length = strspn(string1, string2); printf("Character where strings differ is at position %d\n", length); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 程序例: #include #include int main(void) { char *str1 = "Borland International", *str2 = "nation", *ptr; ptr = strstr(str1, str2); printf("The substring is: %s\n", ptr); return 0; } 函数名: strtod 功 能: 将字符串转换为 double 型值 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: double strtod(char *str, char **endptr); 程序例: #include #include int main(void) { char input[80], *endptr; double value; printf("Enter a floating point number:"); gets(input); value = strtod(input, &endptr); printf("The string is %s the number is %lf\n", input, value); return 0; } 函数名: strtok Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 查找由在第二个串中指定的分界符分隔开的单词 用 法: char *strtok(char *str1, char *str2); 程序例: #include #include int main(void) { char input[16] = "abc,d"; char *p; /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input, ","); if (p) printf("%s\n", p); /* A second call to strtok using a NULL as the first parameter returns a pointer to the character following the token */ p = strtok(NULL, ","); if (p) printf("%s\n", p); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: strtol 功 能: 将串转换为长整数 用 法: long strtol(char *str, char **endptr, int base); 程序例: #include #include int main(void) { char *string = "87654321", *endptr; long lnumber; /* strtol converts string to long integer */ lnumber = strtol(string, &endptr, 10); printf("string = %s long = %ld\n", string, lnumber); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数名: strupr 功 能: 将串中的小写字母转换为大写字母 用 法: char *strupr(char *str); 程序例: #include #include int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz", *ptr; /* converts string to upper case characters */ ptr = strupr(string); printf("%s\n", ptr); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: swab 功 能: 交换字节 用 法: void swab (char *from, char *to, int nbytes); 程序例: #include #include #include char source[15] = "rFna koBlrna d"; char target[15]; int main(void) { swab(source, target, strlen(source)); printf("This is target: %s\n", target); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: system 功 能: 发出一个 DOS 命令 用 法: int system(char *command); 程序例: #include #include int main(void) { printf("About to spawn command.com and run a DOS command\n"); system("dir"); return 0; } 函数大全(t 开头) 函数名: tan 功 能: 正切函数 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 用 法: double tan(double x); 程序例: #include #include int main(void) { double result, x; x = 0.5; result = tan(x); printf("The tan of %lf is %lf\n", x, result); return 0; } 函数名: tanh 功 能: 双曲正切函数 用 法: double tanh(double x); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include int main(void) { double result, x; x = 0.5; result = tanh(x); printf("The hyperbolic tangent of %lf is %lf\n", x, result); return 0; } 函数名: tell 功 能: 取文件指针的当前位置 用 法: long tell(int handle); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include #include #include #include int main(void) { int handle; char msg[] = "Hello world"; if ((handle = open("TEST.$$$", O_CREAT | O_TEXT | O_APPEND)) == -1) { perror("Error:"); return 1; } write(handle, msg, strlen(msg)); printf("The file pointer is at byte %ld\n", tell(handle)); close(handle); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: textattr 功 能: 设置文本属性 用 法: void textattr(int attribute); 程序例: #include int main(void) { int i; clrscr(); for (i=0; i<9; i++) { textattr(i + ((i+1) << 4)); cprintf("This is a test\r\n"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } return 0; } 函数名: textbackground 功 能: 选择新的文本背景颜色 用 法: void textbackground(int color); 程序例: #include int main(void) { int i, j; clrscr(); for (i=0; i<9; i++) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. for (j=0; j<80; j++) cprintf("C"); cprintf("\r\n"); textcolor(i+1); textbackground(i); } return 0; } 函数名: textcolor 功 能: 在文本模式中选择新的字符颜色 用 法: void textcolor(int color); 程序例: #include int main(void) { int i; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. for (i=0; i<15; i++) { textcolor(i); cprintf("Foreground Color\r\n"); } return 0; } 函数名: textheight 功 能: 返回以像素为单位的字符串高度 用 法: int far textheight(char far *textstring); 程序例: #include #include #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int y = 0; int i; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* draw some text on the screen */ for (i=1; i<11; i++) { /* select the text style, direction, and size */ settextstyle(TRIPLEX_FONT, HORIZ_DIR, i); /* create a message string */ sprintf(msg, "Size: %d", i); /* output the message */ outtextxy(1, y, msg); /* advance to the next text line */ y += textheight(msg); } /* clean up */ getch(); closegraph(); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: textmode 功 能: 将屏幕设置成文本模式 用 法: void textmode(int mode); 程序例: #include int main(void) { textmode(BW40); cprintf("ABC"); getch(); textmode(C40); cprintf("ABC"); getch(); textmode(BW80); cprintf("ABC"); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. getch(); textmode(C80); cprintf("ABC"); getch(); textmode(MONO); cprintf("ABC"); getch(); return 0; } 函数名: textwidth 功 能: 返回以像素为单位的字符串宽度 用 法: int far textwidth(char far *textstring); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int x = 0, y = 0; int i; char msg[80]; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } y = getmaxy() / 2; settextjustify(LEFT_TEXT, CENTER_TEXT); for (i=1; i<11; i++) { /* select the text style, direction, and size */ settextstyle(TRIPLEX_FONT, HORIZ_DIR, i); /* create a message string */ sprintf(msg, "Size: %d", i); /* output the message */ outtextxy(x, y, msg); /* advance to the end of the text */ x += textwidth(msg); } /* clean up */ getch(); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. closegraph(); return 0; } 函数名: time 功 能: 取一天的时间 用 法: logn time(long *tloc); 程序例: #include #include #include int main(void) { time_t t; t = time(NULL); printf("The number of seconds since January 1, 1970 is %ld",t); return 0; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. } 函数名: tmpfile 功 能: 以二进制方式打开暂存文件 用 法: FILE *tmpfile(void); 程序例: #include #include int main(void) { FILE *tempfp; tempfp = tmpfile(); if (tempfp) printf("Temporary file created\n"); else { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Unable to create temporary file\n"); exit(1); } return 0; } 函数名: tmpnam 功 能: 创建一个唯一的文件名 用 法: char *tmpnam(char *sptr); 程序例: #include int main(void) { char name[13]; tmpnam(name); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. printf("Temporary name: %s\n", name); return 0; } 函数名: tolower 功 能: 把字符转换成小写字母 用 法: int tolower(int c); 程序例: #include #include #include int main(void) { int length, i; char *string = "THIS IS A STRING"; length = strlen(string); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. for (i=0; i #include #include int main(void) { Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int length, i; char *string = "this is a string"; length = strlen(string); for (i=0; i Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include int main(void) { time_t td; putenv("TZ=PST8PDT"); tzset(); time(&td); printf("Current time = %s\n", asctime(localtime(&td))); return 0; } 函数大全(u 开头) 函数名: ultoa 功 能: 转换一个无符号长整型数为字符串 用 法: char *ultoa(unsigned long value, char *string, int radix); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main( void ) { unsigned long lnumber = 3123456789L; char string[25]; ultoa(lnumber,string,10); printf("string = %s unsigned long = %lu\n",string,lnumber); return 0; } 函数名: ungetc 功 能: 把一个字符退回到输入流中 用 法: int ungetc(char c, FILE *stream); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main( void ) { int i=0; char ch; puts("Input an integer followed by a char:"); /* read chars until non digit or EOF */ while((ch = getchar()) != EOF && isdigit(ch)) i = 10 * i + ch - 48; /* convert ASCII into int value */ /* if non digit char was read, push it back into input buffer */ if (ch != EOF) ungetc(ch, stdin); printf("i = %d, next char in buffer = %c\n", i, getchar()); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: ungetch 功 能: 把一个字符退回到键盘缓冲区中 用 法: int ungetch(int c); 程序例: #include #include #include int main( void ) { int i=0; char ch; puts("Input an integer followed by a char:"); /* read chars until non digit or EOF */ while((ch = getche()) != EOF && isdigit(ch)) i = 10 * i + ch - 48; /* convert ASCII into int value */ /* if non digit char was read, push it back into input buffer */ Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (ch != EOF) ungetch(ch); printf("\n\ni = %d, next char in buffer = %c\n", i, getch()); return 0; } 函数名: unixtodos 功 能: 把日期和时间转换成 DOS 格式 用 法: void unixtodos(long utime, struct date *dateptr, struct time *timeptr); 程序例: #include #include char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #define SECONDS_PER_DAY 86400L /* the number of seconds in one day */ struct date dt; struct time tm; int main(void) { unsigned long val; /* get today's date and time */ getdate(&dt); gettime(&tm); printf("today is %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year); /* convert date and time to unix format (number of seconds since Jan 1, 1970 */ val = dostounix(&dt, &tm); /* subtract 42 days worth of seconds */ val -= (SECONDS_PER_DAY * 42); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. /* convert back to dos time and date */ unixtodos(val, &dt, &tm); printf("42 days ago it was %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year); return 0; } 函数名: unlink 功 能: 删掉一个文件 用 法: int unlink(char *filename); 程序例: #include #include int main(void) { FILE *fp = fopen("junk.jnk","w"); int status; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. fprintf(fp,"junk"); status = access("junk.jnk",0); if (status == 0) printf("File exists\n"); else printf("File doesn't exist\n"); fclose(fp); unlink("junk.jnk"); status = access("junk.jnk",0); if (status == 0) printf("File exists\n"); else printf("File doesn't exist\n"); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: unlock 功 能: 解除文件共享锁 用 法: int unlock(int handle, long offset, long length); 程序例: #include #include #include #include #include #include int main(void) { int handle, status; long length; handle = sopen("c:\\autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. if (handle < 0) { printf("sopen failed\n"); exit(1); } length = filelength(handle); status = lock(handle,0L,length/2); if (status == 0) printf("lock succeeded\n"); else printf("lock failed\n"); status = unlock(handle,0L,length/2); if (status == 0) printf("unlock succeeded\n"); else printf("unlock failed\n"); close(handle); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. return 0; } 函数大全(v 开头) 函数名: vfprintf 功 能: 送格式化输出到一流中 用 法: int vfprintf(FILE *stream, char *format, va_list param); 程序例: #include #include #include FILE *fp; int vfpf(char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfprintf(fp, fmt, argptr); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char string[4] = "abc"; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } vfpf("%d %f %s", inumber, fnumber, string); rewind(fp); fscanf(fp,"%d %f %s", &inumber, &fnumber, string); printf("%d %f %s\n", inumber, fnumber, string); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. fclose(fp); return 0; } 函数名: vfscanf 功 能: 从流中执行格式化输入 用 法: int vfscanf(FILE *stream, char *format, va_list param); 程序例: #include #include #include FILE *fp; int vfsf(char *fmt, ...) { va_list argptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int cnt; va_start(argptr, fmt); cnt = vfscanf(fp, fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char string[4] = "abc"; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } fprintf(fp,"%d %f %s\n",inumber,fnumber,string); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. rewind(fp); vfsf("%d %f %s",&inumber,&fnumber,string); printf("%d %f %s\n",inumber,fnumber,string); fclose(fp); return 0; } 函数名: vprintf 功 能: 送格式化输出到 stdout 中 用 法: int vprintf(char *format, va_list param); 程序例: #include #include int vpf(char *fmt, ...) { va_list argptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int cnt; va_start(argptr, format); cnt = vprintf(fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char *string = "abc"; vpf("%d %f %s\n",inumber,fnumber,string); return 0; } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: vscanf 功 能: 从 stdin 中执行格式化输入 用 法: int vscanf(char *format, va_list param); 程序例: #include #include #include int vscnf(char *fmt, ...) { va_list argptr; int cnt; printf("Enter an integer, a float, and a string (e.g. i,f,s,)\n"); va_start(argptr, fmt); cnt = vscanf(fmt, argptr); va_end(argptr); return(cnt); } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int main(void) { int inumber; float fnumber; char string[80]; vscnf("%d, %f, %s", &inumber, &fnumber, string); printf("%d %f %s\n", inumber, fnumber, string); return 0; } 函数名: vsprintf 功 能: 送格式化输出到串中 用 法: int vsprintf(char *string, char *format, va_list param); 程序例: #include #include Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include char buffer[80]; int vspf(char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vsprintf(buffer, fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char string[4] = "abc"; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. vspf("%d %f %s", inumber, fnumber, string); printf("%s\n", buffer); return 0; } 函数名: vsscanf 功 能: 从流中执行格式化输入 用 法: int vsscanf(char *s, char *format, va_list param); 程序例: #include #include #include char buffer[80] = "30 90.0 abc"; int vssf(char *fmt, ...) { va_list argptr; Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. int cnt; fflush(stdin); va_start(argptr, fmt); cnt = vsscanf(buffer, fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber; float fnumber; char string[80]; vssf("%d %f %s", &inumber, &fnumber, string); printf("%d %f %s\n", inumber, fnumber, string); return 0; } 函数大全(w 开头) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 函数名: wherex 功 能: 返回窗口内水平光标位置 用 法: int wherex(void); 程序例: #include int main(void) { clrscr(); gotoxy(10,10); cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey()); getch(); return 0; } 函数名: wherey Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 功 能: 返回窗口内垂直光标位置 用 法: int wherey(void); 程序例: #include int main(void) { clrscr(); gotoxy(10,10); cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey()); getch(); return 0; } 函数名: window 功 能: 定义活动文本模式窗口 用 法: void window(int left, int top, int right, int bottom); Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 程序例: #include int main(void) { window(10,10,40,11); textcolor(BLACK); textbackground(WHITE); cprintf("This is a test\r\n"); return 0; } 函数名: write 功 能: 写到一文件中 用 法: int write(int handel, void *buf, int nbyte); 程序例: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. #include #include #include #include #include #include int main(void) { int handle; char string[40]; int length, res; /* Create a file named "TEST.$$$" in the current directory and write a string to it. If "TEST.$$$" already exists, it will be overwritten. */ if ((handle = open("TEST.$$$", O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE)) == -1) Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. { printf("Error opening file.\n"); exit(1); } strcpy(string, "Hello, world!\n"); length = strlen(string); if ((res = write(handle, string, length)) != length) { printf("Error writing to the file.\n"); exit(1); } printf("Wrote %d bytes to the file.\n", res); close(handle); return 0; } 4 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
还剩652页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

ppme8y

贡献于2014-01-05

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf