数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz

C语言的函数!

  [复制链接]
 楼主| 发表于 2004-5-10 16:27:12 | 显示全部楼层
<>函数名: putenv
功  能: 把字符串加到当前环境中
用  法: int putenv(char *envvar);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;alloc.h&gt;
#include &lt;string.h&gt;
#include &lt;dos.h&gt; <>int main(void)
{
   char *path, *ptr;
   int i = 0; <P>   /* get the current path environment */
   ptr = getenv("PATH"); <P>   /* set up new path */
   path = malloc(strlen(ptr)+15);
   strcpy(path,"PATH=");
   strcat(path,ptr);
   strcat(path,";c:\\temp"); <P>   /* replace the current path and display current environment */
   putenv(path);
   while (environ)
       printf("%s\n",environ[i++]); <P>   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-10 16:27:29 | 显示全部楼层
<>函数名: putimage
功  能: 在屏幕上输出一个位图
用  法: void far putimage(int x, int y, void far *bitmap, int op);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>#define ARROW_SIZE 10 <P>void draw_arrow(int x, int y); <P>int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   void *arrow;
   int x, y, maxx;
   unsigned int size; <P>   /* initialize graphics and local variables */
   initgraph(&amp;gdriver, &amp;gmode, ""); <P>   /* 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 */
   } <P>   maxx = getmaxx();
   x = 0;
   y = getmaxy() / 2; <P>   /* draw the image to be grabbed */
   draw_arrow(x, y); <P>   /* calculate the size of the image */
   size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE); <P>   /* allocate memory to hold the image */
   arrow = malloc(size); <P>   /* grab the image */
   getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow); <P>   /* repeat until a key is pressed */
   while (!kbhit())
   {
      /* erase old image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT); <P>      x += ARROW_SIZE;
      if (x &gt;= maxx)
          x = 0; <P>      /* plot new image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);
   } <P>   /* clean up */
   free(arrow);
   closegraph();
   return 0;
} <P>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);
}
  
  </P>
 楼主| 发表于 2004-5-10 16:27:55 | 显示全部楼层
<>函数名: putpixel
功  能: 在指定位置画一像素
用  法: void far putpixel (int x, int y, int pixelcolor);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;dos.h&gt; <>#define PIXEL_COUNT 1000
#define DELAY_TIME  100  /* in milliseconds */ <P>int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   int i, x, y, color, maxx, maxy, maxcolor, seed; <P>   /* initialize graphics and local variables */
   initgraph(&amp;gdriver, &amp;gmode, ""); <P>   /* 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 */
   } <P>   maxx = getmaxx() + 1;
   maxy = getmaxy() + 1;
   maxcolor = getmaxcolor() + 1; <P>   while (!kbhit())
   {
      /* seed the random number generator */
      seed = random(32767);
      srand(seed);
      for (i=0; i&lt;PIXEL_COUNT; i++)
      {
  x = random(maxx);
         y = random(maxy);
         color = random(maxcolor);
         putpixel(x, y, color);
      } <P>      delay(DELAY_TIME);
      srand(seed);
      for (i=0; i&lt;PIXEL_COUNT; i++)
      {
  x = random(maxx);
  y = random(maxy);
  color = random(maxcolor);
  if (color == getpixel(x, y))
     putpixel(x, y, 0);
      }
   } <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-10 16:28:14 | 显示全部楼层
<>函数名: puts
功  能: 送一字符串到流中
用  法: int puts(char *string);
程序例: <>#include &lt;stdio.h&gt;
int main(void)
{
   char string[] = "This is an example output string\n"; <>   puts(string);
   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-10 16:28:27 | 显示全部楼层
<>函数名: puttext
功  能: 将文本从存储区拷贝到屏幕
用  法: int puttext(int left, int top, int right, int bottom, void *source);
程序例: <>#include &lt;conio.h&gt;
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(); <P>   /* grab screen contents */
   gettext(20, 12, 36, 21,buffer);
   clrscr(); <P>   /* put selected characters back to the screen */
   gotoxy(20, 12);
   puttext(20, 12, 36, 21, buffer);
   getch(); <P>   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-10 16:28:39 | 显示全部楼层
<>函数名: putw
功  能: 把一字符或字送到流中
用  法: int putw(int w, FILE *stream);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt; <>#define FNAME "test.$$$" <P>int main(void)
{
   FILE *fp;
   int word; <P>   /* place the word in a file */
   fp = fopen(FNAME, "wb");
   if (fp == NULL)
   {
      printf("Error opening file %s\n", FNAME);
      exit(1);
   } <P>   word = 94;
   putw(word,fp);
   if (ferror(fp))
       printf("Error writing to file\n");
   else
       printf("Successful write\n");
   fclose(fp); <P>   /* reopen the file */
   fp = fopen(FNAME, "rb");
   if (fp == NULL)
   {
      printf("Error opening file %s\n", FNAME);
      exit(1);
   } <P>   /* extract the word */
   word = getw(fp);
   if (ferror(fp))
       printf("Error reading file\n");
   else
       printf("Successful read: word = %d\n", word); <P>   /* clean up */
   fclose(fp);
   unlink(FNAME); <P>   return 0;
}
  <P>                    </P>
 楼主| 发表于 2004-5-10 16:29:19 | 显示全部楼层
<>函数名: qsort
功  能: 使用快速排序例程进行排序
用  法: void qsort(void *base, int nelem, int width, int (*fcmp)());
程序例: <>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt; <>int sort_function( const void *a, const void *b); <P>char list[5][4] = { "cat", "car", "cab", "cap", "can" };
  <P>int main(void)
{
   int  x; <P>   qsort((void *)list, 5, sizeof(list[0]), sort_function);
   for (x = 0; x &lt; 5; x++)
      printf("%s\n", list[x]);
   return 0;
} <P>int sort_function( const void *a, const void *b)
{
   return( strcmp(a,b) );
}
  </P>
 楼主| 发表于 2004-5-10 16:29:58 | 显示全部楼层
<>函数名: raise
功  能: 向正在执行的程序发送一个信号
用  法: int raise(int sig);
程序例: <>#include &lt;signal.h&gt; <>int main(void)
{
   int a, b; <P>   a = 10;
   b = 0;
   if (b == 0)
   /* preempt divide by zero error */
      raise(SIGFPE);
   a = a / b;
   return 0;
}
</P>
 楼主| 发表于 2004-5-10 16:30:08 | 显示全部楼层
<>函数名: rand
功  能: 随机数发生器
用  法: void rand(void);
程序例: <>#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   int i; <P>   printf("Ten random numbers from 0 to 99\n\n");
   for(i=0; i&lt;10; i++)
      printf("%d\n", rand() % 100);
   return 0;
}
</P>
 楼主| 发表于 2004-5-10 16:30:21 | 显示全部楼层
<>函数名: randbrd
功  能: 随机块读
用  法: int randbrd(struct fcb *fcbptr, int reccnt);
程序例: <>#include &lt;process.h&gt;
#include &lt;string.h&gt;
#include &lt;stdio.h&gt;
#include &lt;dos.h&gt; <>int main(void)
{
   char far *save_dta;
   char line[80], buffer[256];
   struct fcb blk;
   int i, result; <P>   /* get user input file name for dta */
   printf("Enter drive and file name (no path - i.e. a:file.dat)\n");
   gets(line); <P>   /* put file name in fcb */
   if (!parsfnm(line, &amp;blk, 1))
   {
      printf("Error in call to parsfnm\n");
      exit(1);
   }
   printf("Drive #%d  File: %s\n\n", blk.fcb_drive, blk.fcb_name); <P>   /* open file with DOS FCB open file */
   bdosptr(0x0F, &amp;blk, 0); <P>   /* save old dta, and set new one */
   save_dta = getdta();
   setdta(buffer); <P>   /* set up info for the new dta */
   blk.fcb_recsize = 128;
   blk.fcb_random = 0L;
   result = randbrd(&amp;blk, 1); <P>   /* check results from randbrd */
   if (!result)
      printf("Read OK\n\n");
   else
   {
      perror("Error during read");
      exit(1);
   } <P>   /* read in data from the new dta */
   printf("The first 128 characters are:\n");
   for (i=0; i&lt;128; i++)
      putchar(buffer); <P>   /* restore previous dta */
   setdta(save_dta); <P>   return 0;
}
</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-30 14:10 , Processed in 0.058913 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表