数模论坛

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

C语言的函数!

  [复制链接]
 楼主| 发表于 2004-5-10 16:32:46 | 显示全部楼层
<>函数名: rewind
功  能: 将文件指针重新指向一个流的开头
用  法: int rewind(FILE *stream);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;dir.h&gt; <> int main(void)
{
    FILE *fp;
    char *fname = "TXXXXXX", *newname, first; <P>    newname = mktemp(fname);
    fp = fopen(newname,"w+");
    fprintf(fp,"abcdefghijklmnopqrstuvwxyz");
    rewind(fp);
    fscanf(fp,"%c",&amp;first);
    printf("The first character is: %c\n",first);
    fclose(fp);
    remove(newname); <P>    return 0;
}
  
</P>
 楼主| 发表于 2004-5-10 16:32:59 | 显示全部楼层
<>函数名: rmdir
功  能: 删除DOS文件目录
用  法: int rmdir(char *stream);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;process.h&gt;
#include &lt;dir.h&gt; <>#define DIRNAME "testdir.$$$" <P>int main(void)
{
   int stat; <P>   stat = mkdir(DIRNAME);
   if (!stat)
          printf("Directory created\n");
   else
   {
      printf("Unable to create directory\n");
      exit(1);
   } <P>   getch();
   system("dir/p");
   getch(); <P>   stat = rmdir(DIRNAME);
   if (!stat)
          printf("\nDirectory deleted\n");
   else
   {
   perror("\nUnable to delete directory\n");
      exit(1);
   } <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-10 16:33:24 | 显示全部楼层
<>函数名: sbrk
功  能: 改变数据段空间位置
用  法: char *sbrk(int incr);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;alloc.h&gt; <>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;
}
  
</P>
 楼主| 发表于 2004-5-10 16:33:40 | 显示全部楼层
<>函数名: scanf
功  能: 执行格式化输入
用  法: int scanf(char *format[,argument,...]);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>int main(void)
{
   char label[20];
   char name[20];
   int entries = 0;
   int loop, age;
   double salary; <P>   struct Entry_struct
   {
      char  name[20];
      int   age;
      float salary;
   } entry[20]; <P>/* 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 */ <P>/* Input number of entries as an integer */
   printf("How many entries will there be? (less than 20) ");
   scanf("%d", &amp;entries);
   fflush(stdin);   /* flush the input stream in case of bad input */ <P>/* input a name restricting input to only letters upper or lower case */
   for (loop=0;loop&lt;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 */ <P>/* input an age as an integer */
      printf("  Age    : ");
      scanf("%d", &amp;entry[loop].age);
      fflush(stdin);  /* flush the input stream in case of bad input */ <P>/* input a salary as a float */
      printf("  Salary : ");
      scanf("%f", &amp;entry[loop].salary);
      fflush(stdin); /* flush the input stream in case of bad input */
   } <P>/* 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, &amp;age, &amp;salary);
  <P>/* 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&lt;entries;++loop)
      printf("%4d | %-20s | %5d | %15.2lf\n",
         loop + 1,
  entry[loop].name,
  entry[loop].age,
         entry[loop].salary);
   printf("-----------------------------------------------------\n");
   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-10 16:33:51 | 显示全部楼层
<>函数名: searchpath
功  能: 搜索DOS路径
用  法: char *searchpath(char *filename);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;dir.h&gt; <>int main(void)
{
   char *p; <P>   /* Looks for TLINK and returns a pointer
      to the path  */
   p = searchpath("TLINK.EXE");
   printf("Search for TLINK.EXE : %s\n", p); <P>   /* Looks for non-existent file  */
   p = searchpath("NOTEXIST.FIL");
   printf("Search for NOTEXIST.FIL : %s\n", p); <P>   return 0;
}
  
</P>
 楼主| 发表于 2004-5-10 16:34:03 | 显示全部楼层
<>函数名: sector
功  能: 画并填充椭圆扇区
用  法: void far sector(int x, int y, int stangle, int endangle);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>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; <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>   midx = getmaxx() / 2;
   midy = getmaxy() / 2; <P>   /* loop through the fill patterns */
   for (i=EMPTY_FILL; i&lt;USER_FILL; i++)
   {
      /* set the fill style */
      setfillstyle(i, getmaxcolor()); <P>      /* draw the sector slice */
      sector(midx, midy, stangle, endangle, xrad, yrad); <P>      getch();
   } <P>   /* clean up */
   closegraph();
   return 0;
}
  </P>
 楼主| 发表于 2004-5-10 16:34:13 | 显示全部楼层
<>函数名: segread
功  能: 读段寄存器值
用  法: void segread(struct SREGS *segtbl);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;dos.h&gt; <>int main(void)
{
   struct SREGS segs; <P>   segread(&amp;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); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-10 16:34:25 | 显示全部楼层
<>函数名: setactivepage
功  能: 设置图形输出活动页
用  法: void far setactivepage(int pagenum);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>int main(void)
{
   /* select a driver and mode that supports */
   /* multiple pages.                        */
   int gdriver = EGA, gmode = EGAHI, errorcode;
   int x, y, ht; <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>   x = getmaxx() / 2;
   y = getmaxy() / 2;
   ht = textheight("W"); <P>   /*  select the off screen page for drawing */
   setactivepage(1); <P>   /* draw a line on page #1 */
   line(0, 0, getmaxx(), getmaxy()); <P>   /* 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:"); <P>   /* select drawing to page #0 */
   setactivepage(0); <P>   /* 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(); <P>   /* select page #1 as the visible page */
   setvisualpage(1); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
  
</P>
 楼主| 发表于 2004-5-10 16:34:39 | 显示全部楼层
<>函数名: setallpallette
功  能: 按指定方式改变所有的调色板颜色
用  法: void far setallpallette(struct palette, far *pallette);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   struct palettetype pal;
   int color, maxcolor, ht;
   int y = 10;
   char msg[80]; <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>   maxcolor = getmaxcolor();
   ht = 2 * textheight("W"); <P>   /* grab a copy of the palette */
   getpalette(&amp;pal); <P>   /* display the default palette colors */
   for (color=1; color&lt;=maxcolor; color++)
   {
      setcolor(color);
      sprintf(msg, "Color: %d", color);
      outtextxy(1, y, msg);
      y += ht;
   } <P>   /* wait for a key */
   getch(); <P>   /* black out the colors one by one */
   for (color=1; color&lt;=maxcolor; color++)
   {
      setpalette(color, BLACK);
      getch();
   } <P>   /* restore the palette colors */
   setallpalette(&amp;pal); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
</P>
 楼主| 发表于 2004-5-10 16:34:52 | 显示全部楼层
<>函数名: setaspectratio
功  能: 设置图形纵横比
用  法: void far setaspectratio(int xasp, int yasp);
程序例: <>#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt; <>int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int xasp, yasp, midx, midy; <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>   midx = getmaxx() / 2;
   midy = getmaxy() / 2;
   setcolor(getmaxcolor()); <P>   /* get current aspect ratio settings */
   getaspectratio(&amp;xasp, &amp;yasp); <P>   /* draw normal circle */
   circle(midx, midy, 100);
   getch(); <P>   /* claer the screen */
   cleardevice(); <P>   /* adjust the aspect for a wide circle */
   setaspectratio(xasp/2, yasp);
   circle(midx, midy, 100);
   getch(); <P>   /* adjust the aspect for a narrow circle */
   cleardevice();
   setaspectratio(xasp, yasp/2);
   circle(midx, midy, 100); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
  
</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

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

GMT+8, 2024-11-27 06:31 , Processed in 0.059924 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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