`
wangleide414
  • 浏览: 606901 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Linux C语言常用函数 05

 
阅读更多

 

函数名: 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;  

}  

   

   

函数名: 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  

功  能根据参数产生一个多项式  

用  法: 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  

功  能指数函数(xy次方)  

用  法: 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  

功  能指数函数(10p次方)  

用  法: double pow10(int p);  

程序例:  

#include ;  

#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  

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 函数名: putc  

功  能输出一字符到指定流中  

用  法: int putc(int ch, FILE *stream);  

程序例:  

#include ;  

int main(void)  

{  

   char msg[] = "Hello world\n";  

   int i = 0;  

   while (msg)  

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

   return 0;  

}  

   

   

函数名: 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;  

}  

   

   

函数名: 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 */  

   putchar(LEFT_TOP);  

   for (i=0; i函数名: putenv  

功  能把字符串加到当前环境中  

用  法: int putenv(char *envvar);  

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

#include ;  

int main(void)  

{  

   char *path, *ptr;  

   int i = 0;  

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

       printf("%s\n",environ[i++]);  

   return 0;  

}  

   

   

函数名: putimage  

功  能在屏幕上输出一个位图  

用  法: void far putimage(int x, int y, void far *bitmap, int op);  

程序例:  

#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, "");  

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

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

   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 ;  

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

      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函数名: puts  

功  能送一字符串到流中  

用  法: int puts(char *string);  

程序例:  

#include ;  

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)  

{  

   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;  

}  

   

   

函数名: 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);  

   }  

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

   /* clean up */  

   fclose(fp);  

   unlink(FNAME);  

   return 0;  

}  

 

CODE:

 

[Copy to clipboard]

 

函数名: 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" }; 

   

int main(void) 

   int  x;  

   qsort((void *)list, 5, sizeof(list[0]), sort_function); 

   for (x = 0; x 函数名: raise  

功  能向正在执行的程序发送一个信号  

用  法: int raise(int sig);  

程序例:  

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

程序例:  

#include ;  

#include ;  

int main(void)  

{  

   int i;  

   printf("Ten random numbers from 0 to 99\n\n");  

   for(i=0; i函数名: randbrd  

功  能随机块读  

用  法: int randbrd(struct fcb *fcbptr, int reccnt);  

程序例:  

#include ;  

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

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

   }  

   /* read in data from the new dta */  

   printf("The first 128 characters are:\n");  

   for (i=0; i函数名: randbwr  

功  能随机块写  

用  法: int randbwr(struct fcp *fcbptr, int reccnt);  

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

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

   }  

   /* 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");  

      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)  

{  

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

   printf("Ten random numbers from 0 to 99\n\n");  

   for(i=0; i函数名: read  

功  能从文件中读  

用  法: int read(int handle, void *buf, int nbyte);  

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

#include ;  

#include ;  

int main(void)  

{  

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

   }  

   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;  

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

程序例:  

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

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

程序例:  

#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 函数名: 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);  

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

   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 ;  

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

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

程序例:  

#include ;  

#include ;  

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

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

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

}  

 

CODE:

 

[Copy to clipboard]

 

函数名: sbrk  

功  能改变数据段空间位置  

用  法: char *sbrk(int incr);  

程序例:  

#include ;  

#include ;  

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,...]);  

程序例:  

#include ;  

#include ;  

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函数名: searchpath  

功  能搜索DOS路径  

用  法: char *searchpath(char *filename);  

程序例:  

#include ;  

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

}  

   

   

函数名: sector  

功  能画并填充椭圆扇区  

用  法: void far sector(int x, int y, int stangle, int endangle);  

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

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函数名: segread  

功  能读段寄存器值  

用  法: void segread(struct SREGS *segtbl);  

程序例:  

#include ;  

#include ;  

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

程序例:  

#include ;  

#include ;  

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

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

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

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函数名: setaspectratio  

功  能设置图形纵横比  

用  法: void far setaspectratio(int xasp, int yasp);  

程序例:  

#include ;  

#include ;  

#include ;  

#include ;  

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;  

}  

分享到:
评论

相关推荐

    linux下常用c语言函数(word和pdf)

    本资源提供了两个文档,一个是"linux的c函数(Word版).doc",另一个是"Linux_C_fun.pdf",它们都包含了关于Linux环境下常用C语言函数的详细资料。下面我们将深入探讨这些知识点。 1. **标准库函数**: - `stdio.h`...

    linux c语言常用函数说明

    在Linux系统中,C语言是基础且强大的编程...这些是Linux C语言编程中常用的一些函数,理解和熟练使用它们是编写高效、稳定程序的关键。通过实践和学习,开发者可以构建复杂的应用程序,充分利用Linux系统的强大功能。

    C语言FFT函数库及安装教程(Windows和Linux)和使用教程

    压缩包包含:1.C语言FFT函数库FFTW,FFTW 是由麻省理工学院计算机科学实验室超级计算技术组开发的一套离散傅立叶变换(DFT)的计算库,开源、高效和标准 C 语言编写的代码使其得到了非常广泛的应用, Intel 的数学库和...

    Linux C语言函数大全(htm 版,比较全)

    C语言函数大全是学习和参考C语言编程的关键资源,它通常包含了C语言标准库中的所有函数,以及一些常用的第三方库函数。这份"Linux C语言函数大全(htm 版,比较全)"很可能是一个HTML文档,提供了一个方便的在线查阅...

    Linux 常用C函数(中文版)

    10. 其他常用函数:如`time`获取当前时间,`sleep`暂停程序执行,`getchar`和`putchar`处理单个字符输入输出等,都是日常编程中经常遇到的函数。 通过学习和实践这些C语言函数,开发者不仅可以编写出高效、可靠的...

    C常用的LinuxC语言函数库

    在Linux环境中进行C语言编程时,熟练掌握常用函数库是非常重要的。本文将详细介绍Linux中C语言函数库中的字符操作函数和字符串操作函数,帮助开发者更好地理解和应用这些基础但重要的函数。 #### 二、字符操作函数 ...

    Linux C语言函数大全

    本资源"Linux C语言函数大全"旨在为开发者提供一份详尽的参考指南,涵盖了Linux环境下C语言常用函数的使用和理解。 博客链接可能包含了作者对这些函数的深入解析和实例应用,这将有助于读者更好地掌握C语言在Linux...

    Linux常用C函数.rar(html版)

    下面,我们将详细探讨一些在Linux系统中常用的C语言函数,并解释它们的作用和使用场景。 1. **标准输入输出函数**: - `printf` 和 `scanf`:这是最基础的输入输出函数,用于格式化输出和输入数据。 - `fgets` 和...

    LinuxC常用函数手册

    这份"LinuxC常用函数手册"为你提供了一份详尽的参考资料,涵盖了Linux C编程中的基础到高级的函数用法。以下是一些关键的知识点: 1. **标准输入输出**: - `printf`与`scanf`:用于格式化输出和输入,是C语言中最...

    Linux C语言函数大全.zip

    1. **标准输入/输出**:`printf` 和 `scanf` 是C语言中最常用的输入输出函数,用于格式化打印和读取用户输入。在Linux中,还可以使用`fprintf`、`fscanf`、`fgets`、`fputs`等函数与文件进行交互。 2. **内存管理**...

    Linux C语言函数集合

    在Linux系统中,C语言是基础且重要的编程语言,它提供了丰富的函数库来支持各种操作。本篇文章将详细探讨在Linux环境下使用的C语言函数,特别是`isalnum`、`isalpha`和`isascii`这三个函数,它们在处理字符和字符串...

    linux常用c函数中文版

    - `fgets()`, `fputs()`: 读写字符串到文件中,是低级文件操作的常用函数。 2. **内存管理函数**: - `malloc()`, `calloc()`, `realloc()`: 动态内存分配,用于在运行时根据需要分配内存。 - `free()`: 释放已...

    Linux常用C函数速查(中文版html).rar

    这个压缩包“Linux常用C函数速查(中文版html)”提供了对Linux下常用C语言函数的详细参考,对于初学者和经验丰富的开发者来说都是一个宝贵的资源。 C语言是一门强大的低级编程语言,它提供了直接访问硬件的能力,...

    linux C语言 socket通信聊天小程序

    在Linux环境中,C语言是构建系统级程序,如网络通信应用的理想选择。Socket编程是C语言在实现网络通信中的核心部分,它允许不同计算机之间的进程进行数据交换。本项目涉及的"Linux C语言 socket通信聊天小程序"是一...

    Linux 常用C函数

    本资源“Linux常用C函数(中文版)”提供了一份详细的C函数参考,涵盖了在Linux环境下编程时经常会遇到的一些关键函数。这些函数是C语言标准库的一部分,同时也是Linux系统调用的基础。下面,我们将深入探讨一些重要...

    Linux_c语言函数库

    Linux_c语言函数库,也称为GNU C Library,通常被称为glibc,是Linux系统上最常用的标准C函数库。它包含了ANSI C、POSIX、X/Open等标准定义的函数,以及许多针对Linux特定特性的扩展。 1. **基本输入输出**: ...

    linux常用C函数大全

    这篇文档“Linux常用C函数大全”涵盖了在Linux环境下进行C程序开发时可能会遇到的大部分常用函数,旨在提供一个清晰、全面的参考资源。下面,我们将详细讨论这些函数的主要功能和用法。 1. **标准输入输出库函数**...

Global site tag (gtag.js) - Google Analytics