数模论坛

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

C语言的函数!

  [复制链接]
 楼主| 发表于 2004-5-9 05:42:29 | 显示全部楼层
<>函数名: MK_FP
功  能: 设置一个远指针
用  法: void far *MK_FP(unsigned seg, unsigned off);
程序例: <>#include &lt;dos.h&gt;
#include &lt;graphics.h&gt; <>int main(void)
{
   int gd, gm, i;
   unsigned int far *screen; <P>   detectgraph(&amp;gd, &amp;gm);
   if (gd == HERCMONO)
       screen = MK_FP(0xB000, 0);
   else
       screen = MK_FP(0xB800, 0);
   for (i=0; i&lt;26; i++)
      screen = 0x0700 + ('a' + i);
   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:43:14 | 显示全部楼层
<>函数名: modf
功  能: 把数分为指数和尾数
用  法: double modf(double value, double *iptr);
程序例: <>#include &lt;math.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   double fraction, integer;
   double number = 100000.567; <P>   fraction = modf(number, &amp;integer);
   printf("The whole and fractional parts of %lf are %lf and %lf\n",
          number, integer, fraction);
   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:43:33 | 显示全部楼层
<>函数名: movedata
功  能: 拷贝字节
用  法: void movedata(int segsrc, int offsrc, int segdest,
  int offdest, unsigned numbytes);
程序例: <>#include &lt;mem.h&gt; <>#define MONO_BASE 0xB000 <P>/* saves the contents of the monochrome screen in buffer */
void save_mono_screen(char near *buffer)
{
   movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);
} <P>int main(void)
{
   char buf[80*25*2];
   save_mono_screen(buf);
}
  
</P>
 楼主| 发表于 2004-5-9 05:44:30 | 显示全部楼层
<>函数名: moverel
功  能: 将当前位置(CP)移动一相对距离
用  法: void far moverel(int dx, int dy);
程序例: <>#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;
   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>   /* move the C.P. to location (20, 30) */
   moveto(20, 30); <P>   /* plot a pixel at the C.P. */
   putpixel(getx(), gety(), getmaxcolor()); <P>   /* create and output a message at (20, 30) */
   sprintf(msg, " (%d, %d)", getx(), gety());
   outtextxy(20, 30, msg); <P>   /* move to a point a relative distance */
   /* away from the current value of C.P. */
   moverel(100, 100); <P>   /* plot a pixel at the C.P. */
   putpixel(getx(), gety(), getmaxcolor()); <P>   /* create and output a message at C.P. */
   sprintf(msg, " (%d, %d)", getx(), gety());
   outtext(msg); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:44:49 | 显示全部楼层
<>函数名: movetext
功  能: 将屏幕文本从一个矩形区域拷贝到另一个矩形区域
用  法: int movetext(int left, int top, int right, int bottom,
  int newleft, int newtop);
程序例:
#include &lt;conio.h&gt;
#include &lt;string.h&gt; <>int main(void)
{
   char *str = "This is a test string"; <>   clrscr();
   cputs(str);
   getch(); <P>   movetext(1, 1, strlen(str), 2, 10, 10);
   getch(); <P>   return 0;
}
  
</P>
 楼主| 发表于 2004-5-9 05:45:06 | 显示全部楼层
<>函数名: moveto
功  能: 将CP移到(x, y)
用  法: void far moveto(int x, int y);
程序例: <>#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;
   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>   /* move the C.P. to location (20, 30) */
   moveto(20, 30); <P>   /* plot a pixel at the C.P. */
   putpixel(getx(), gety(), getmaxcolor()); <P>   /* create and output a message at (20, 30) */
   sprintf(msg, " (%d, %d)", getx(), gety());
   outtextxy(20, 30, msg); <P>   /* move to (100, 100) */
   moveto(100, 100); <P>   /* plot a pixel at the C.P. */
   putpixel(getx(), gety(), getmaxcolor()); <P>   /* create and output a message at C.P. */
   sprintf(msg, " (%d, %d)", getx(), gety());
   outtext(msg); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-9 05:45:30 | 显示全部楼层
<>函数名: movemem
功  能: 移动一块字节
用  法: void movemem(void *source, void *destin, unsigned len);
程序例: <>#include &lt;mem.h&gt;
#include &lt;alloc.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt; <>int main(void)
{
   char *source = "Borland International";
   char *destination;
   int length; <P>   length = strlen(source);
   destination = malloc(length + 1);
   movmem(source,destination,length);
   printf("%s\n",destination); <P>   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-9 05:45:54 | 显示全部楼层
<>函数名: normvideo
功  能: 选择正常亮度字符
用  法: void normvideo(void);
程序例: <>#include &lt;conio.h&gt; <>int main(void)
{
   normvideo();
   cprintf("NORMAL Intensity Text\r\n");
   return 0;
}
  
  </P>
 楼主| 发表于 2004-5-9 05:46:22 | 显示全部楼层
<>函数名: nosound
功  能: 关闭PC扬声器
用  法: void nosound(void);
程序例: <>/* Emits a 7-Hz tone for 10 seconds. <>     True story: 7 Hz is the resonant frequency of a chicken's skull cavity.
     This was determined empirically in Australia, where a new factory
     generating 7-Hz tones was located too close to a chicken ranch:
     When the factory started up, all the chickens died. <P>     Your PC may not be able to emit a 7-Hz tone.
*/ <P>int main(void)
{
   sound(7);
   delay(10000);
   nosound();
}
  </P>
发表于 2004-5-10 01:40:30 | 显示全部楼层
低层的函数,可能更好用!
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

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

GMT+8, 2024-11-27 04:32 , Processed in 0.051027 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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