函数名: rename 功 能: 重命名文件 用 法: int rename(char *oldname, char *newname); 程序例:
#i nclude
int main(void) { char oldname[80], newname[80];
/* prompt for file to rename and new name */ printf(\"File to rename: \"); gets(oldname); 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); 程序例:
#i nclude #i nclude #i nclude #i nclude
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; 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 */ getch(); closegraph(); return 0; }
函数名: rewind 功 能: 将文件指针重新指向一个流的开头 用 法: int rewind(FILE *stream); 程序例:
#i nclude #i nclude
int main(void) { FILE *fp; char *fname = \"TXXXXXX\", *newname, first;
newname = mktemp(fname); fp = fopen(newname,\"w+\"); 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); 程序例:
#i nclude #i nclude #i nclude #i nclude
#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\"); else { perror(\"\\nUnable to delete directory\\n\"); exit(1); }
return 0; }
函数名: sbrk 功 能: 改变数据段空间位置 用 法: char *sbrk(int incr); 程序例:
#i nclude #i nclude
int main(void) { printf(\"Changing allocation with sbrk()\\n\"); printf(\"Before sbrk() call: %lu bytes free\\n\", (unsigned long) coreleft()); sbrk(1000); printf(\" After sbrk() call: %lu bytes free\\n\", (unsigned long) coreleft()); return 0; }
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); 程序例:
#i nclude #i nclude
int main(void) { char label[20]; char name[20]; int entries = 0; 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 { printf(\"Entry %d\\n\", loop); printf(\" Name : \"); scanf(\"%[A-Za-z]\", entry[loop].name); fflush(stdin); /* flush the input stream in case of bad input */
/* input an age as an integer */ printf(\" Age : \"); scanf(\"%d\", &entry[loop].age); fflush(stdin); /* flush the input stream in case of bad input */
/* input a salary as a float */ printf(\" Salary : \"); scanf(\"%f\", &entry[loop].salary); fflush(stdin); /* flush the input stream in case of bad input */ }
/* Input a name, age and salary as a string, integer, and double */ printf(\"\\nPlease enter your name, age and salary\\n\"); scanf(\"%20s %d %lf\", name, &age, &salary);
/* Print out the data that was input */ printf(\"\\n\\nTable %s\\n\",label); printf(\"Compiled by %s age %d $%15.2lf\\n\", name, age, salary); printf(\"-----------------------------------------------------\\n\"); for (loop=0;loop printf(\"%4d | %-20s | %5d | %15.2lf\\n\", loop + 1, entry[loop].name, entry[loop].age, entry[loop].salary); printf(\"-----------------------------------------------------\\n\"); return 0; }
函数名: searchpath 功 能: 搜索DOS路径 用 法: char *searchpath(char *filename); 程序例:
#i nclude #i nclude
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; }
函数名: sector 功 能: 画并填充椭圆扇区 用 法: void far sector(int x, int y, int stangle, int endangle); 程序例:
#i nclude #i nclude #i nclude #i nclude
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, i; int stangle = 45, endangle = 135; int xrad = 100, yrad = 50;
/* 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;
/* loop through the fill patterns */ for (i=EMPTY_FILL; i { /* set the fill style */ setfillstyle(i, getmaxcolor());
/* draw the sector slice */ sector(midx, midy, stangle, endangle, xrad, yrad);
getch(); }
/* clean up */ closegraph(); return 0; }
函数名: segread 功 能: 读段寄存器值 用 法: void segread(struct SREGS *segtbl); 程序例:
#i nclude #i nclude
int main(void) { struct SREGS segs;
segread(&segs); printf(\"Current segment register settings\\n\\n\"); printf(\"CS: %X DS: %X\\n\", segs.cs, segs.ds); printf(\"ES: %X SS: %X\\n\", segs.es, segs.ss);
return 0; }
函数名: setactivepage 功 能: 设置图形输出活动页 用 法: void far setactivepage(int pagenum); 程序例:
#i nclude #i nclude #i nclude #i nclude
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)); 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 */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(x, y, \"This is page #1:\"); outtextxy(x, y+ht, \"Press any key to halt:\");
/* select drawing to page #0 */ setactivepage(0);
/* output a message on page #0 */ outtextxy(x, y, \"This is page #0.\"); outtextxy(x, y+ht, \"Press any key to view page #1:\"); getch();
/* select page #1 as the visible page */ setvisualpage(1);
/* clean up */ getch(); closegraph(); return 0; }
函数名: setallpallette 功 能: 按指定方式改变所有的调色板颜色 用 法: void far setallpallette(struct palette, far *pallette); 程序例:
#i nclude #i nclude #i nclude #i nclude
int main(void) { /* request auto detection */ 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, \"\");
/* 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\");
/* grab a copy of the palette */ getpalette(&pal);
/* display the default palette colors */ 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(); }
/* restore the palette colors */ setallpalette(&pal);
/* clean up */ getch(); closegraph(); return 0; }
函数名: setaspectratio 功 能: 设置图形纵横比 用 法: void far setaspectratio(int xasp, int yasp); 程序例:
#i nclude #i nclude #i nclude #i nclude
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int xasp, yasp, midx, midy;
/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, \"\");
/* read result of initialization */ errorcode = graphresult(); 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());
/* get current aspect ratio settings */ getaspectratio(&xasp, &yasp);
/* draw normal circle */ circle(midx, midy, 100); getch();
/* claer the screen */ cleardevice();
/* adjust the aspect for a wide circle */ setaspectratio(xasp/2, yasp); circle(midx, midy, 100); getch();
/* adjust the aspect for a narrow circle */ cleardevice(); setaspectratio(xasp, yasp/2); circle(midx, midy, 100);
/* clean up */ getch(); closegraph(); return 0; }
|