/* 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<entries;++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<entries;++loop) printf("%4d %-20s %5d %15.2lf/n", loop + 1, entry[loop].name, entry[loop].age, entry[loop].salary); printf("-----------------------------------------------------/n"); return 0;
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<USER_FILL; i++) { /* set the fill style */ setfillstyle(i, getmaxcolor());
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); 程序例:
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 */ }
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 */ }
int main(void) { /* select a driver 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();
/* for centering text messages */ settextjustify(CENTER_TEXT, CENTER_TEXT); x = getmaxx() / 2; y = getmaxy() / 2;
/* loop through the available colors */
for (bkcol=0; bkcol<=maxcolor; bkcol++) { /* clear the screen */ cleardevice();
/* select a new background color */ setbkcolor(bkcol);
/* output a messsage */ if (bkcol == WHITE) setcolor(EGA_BLUE); sprintf(msg, "Background color: %d", bkcol); outtextxy(x, y, msg); getch(); }
/* clean up */ closegraph(); return 0; }
函数名: setblock 功 能: 修改先前已分配的DOS存储段大小 用 法: int setblock(int seg, int newsize); 程序例:
int main(void) { unsigned int size, segp; int stat;
size = 64; /* (64 x 16) = 1024 bytes */ stat = allocmem(size, &segp); if (stat == -1) printf("Allocated memory at segment: %X/n", segp); else { printf("Failed: maximum number of paragraphs available is %d/n", stat); exit(1); }
stat = setblock(segp, size * 2); if (stat == -1) printf("EXPanded memory block at segment: %X/n", segp); else
printf("Failed: maximum number of paragraphs available is %d/n", stat);
/* BUFSIZ is defined in stdio.h */ char outbuf[BUFSIZ];
int main(void) { /* attach a buffer to the standard output stream */ setbuf(stdout, outbuf);
/* put some characters into the buffer */ puts("This is a test of buffered output./n/n"); puts("This output will go into outbuf/n"); puts("and won't appear until the buffer/n"); puts("fills up or we flush the stream./n");
int main(void) { /* select a driver and mode that supports */ /* multiple drawing colors. */ int gdriver = EGA, gmode = EGAHI, errorcode; int color, 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();
/* for centering text messages */ settextjustify(CENTER_TEXT, CENTER_TEXT); x = getmaxx() / 2; y = getmaxy() / 2;
/* loop through the available colors */ for (color=1; color<=maxcolor; color++) { /* clear the screen */ cleardevice();
/* select a new background color */ setcolor(color);
/* output a messsage */
sprintf(msg, "Color: %d", color); outtextxy(x, y, msg); getch(); }
int main(void) { /* request auto detection */ 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 */ { printf("Graphics error: %s/n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ }
/* the names of the fill styles supported */ char *fname[] = { "EMPTY_FILL", "SOLID_FILL", "LINE_FILL", "LTSLASH_FILL", "SLASH_FILL", "BKSLASH_FILL", "LTBKSLASH_FILL", "HATCH_FILL", "XHATCH_FILL", "INTERLEAVE_FILL", "WIDE_DOT_FILL", "CLOSE_DOT_FILL", "USER_FILL" };
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int style, midx, midy; 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(); exit(1); /* terminate with an error code */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
for (style = EMPTY_FILL; style < USER_FILL; style++) { /* select the fill style */ setfillstyle(style, getmaxcolor());
/* convert style into a string */ strcpy(stylestr, fname[style]);
/* fill a bar */ bar3d(0, 0, midx-10, midy, 0, 0);
/* output a message */ outtextxy(midx, midy, stylestr);
int main(void) { /* request auto detection */ int gdriver = 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(); 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 */ }
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:");