数模论坛

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

C语言的函数!

  [复制链接]
 楼主| 发表于 2004-5-9 00:52:44 | 显示全部楼层
<>函数名: isatty
功  能: 检查设备类型
用  法: int isatty(int handle);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;io.h&gt; <>int main(void)
{
   int handle; <P>   handle = fileno(stdprn);
   if (isatty(handle))
      printf("Handle %d is a device type\n", handle);
   else
      printf("Handle %d isn't a device type\n", handle);
   return 0;
}
  
  
</P>
 楼主| 发表于 2004-5-9 00:52:59 | 显示全部楼层
<>函数名: itoa
功  能: 把一整数转换为字符串
用  法: char *itoa(int value, char *string, int radix);
程序例: <>#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt; <>int main(void)
{
   int number = 12345;
   char string[25]; <P>   itoa(number, string, 10);
   printf("integer = %d string = %s\n", number, string);
   return 0;
}
</P>
 楼主| 发表于 2004-5-9 00:53:21 | 显示全部楼层
<>函数名: kbhit
功  能: 检查当前按下的键
用  法: int kbhit(void);
程序例: <>#include &lt;conio.h&gt; <>int main(void)
{
   cprintf("Press any key to continue:");
   while (!kbhit()) /* do nothing */ ;
   cprintf("\r\nA key was pressed...\r\n");
   return 0;
}
</P>
 楼主| 发表于 2004-5-9 00:53:37 | 显示全部楼层
<>函数名: keep
功  能: 退出并继续驻留
用  法: void keep(int status, int size);
程序例: <>/***NOTE:
   This is an interrupt service routine.  You
   can NOT compile this program with Test
   Stack Overflow turned on and get an
   executable file which will operate
   correctly.  Due to the nature of this
   function the formula used to compute
   the number of paragraphs may not
   necessarily work in all cases.  Use with
   care!  Terminate Stay Resident (TSR)
   programs are complex and no other support
   for them is provided.  Refer to the
   MS-DOS technical documentation
   for more information.  */
#include &lt;dos.h&gt;
/* The clock tick interrupt */
#define INTR 0x1C
/* Screen attribute (blue on grey) */
#define ATTR 0x7900 <>/* reduce heaplength and stacklength
to make a smaller program in memory */
extern unsigned _heaplen = 1024;
extern unsigned _stklen  = 512; <P>void interrupt ( *oldhandler)(void); <P>void interrupt handler(void)
{
   unsigned int (far *screen)[80];
   static int count; <P>/* For a color screen the video memory
   is at B800:0000.  For a monochrome
   system use B000:000 */
   screen = MK_FP(0xB800,0); <P>/* increase the counter and keep it
   within 0 to 9 */
   count++;
   count %= 10; <P>/* put the number on the screen */
   screen[0][79] = count + '0' + ATTR; <P>/* call the old interrupt handler */
   oldhandler();
} <P>int main(void)
{ <P>/* get the address of the current clock
   tick interrupt */
oldhandler = getvect(INTR); <P>/* install the new interrupt handler */
setvect(INTR, handler); <P>/* _psp is the starting address of the
   program in memory.  The top of the stack
   is the end of the program.  Using _SS and
   _SP together we can get the end of the
   stack.  You may want to allow a bit of
   saftey space to insure that enough room
   is being allocated ie:
   (_SS + ((_SP + safety space)/16) - _psp)
*/
keep(0, (_SS + (_SP/16) - _psp));
return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:29:18 | 显示全部楼层
<>函数名: labs
功  能: 取长整型绝对值
用  法: long labs(long n);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;math.h&gt; <>int main(void)
{
   long result;
   long x = -12345678L; <P>   result= labs(x);
   printf("number: %ld abs value: %ld\n",
      x, result); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:30:03 | 显示全部楼层
<>函数名: ldexp
功  能: 计算value*2的幂
用  法: double ldexp(double value, int exp);
程序例: <>#include &lt;stdio.h&gt;
#include &lt;math.h&gt; <>int main(void)
{
   double value;
   double x = 2; <P>   /* ldexp raises 2 by a power of 3
      then multiplies the result by 2   */
   value = ldexp(x,3);
   printf("The ldexp value is: %lf\n",
      value); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:30:20 | 显示全部楼层
<>函数名: ldiv
功  能: 两个长整型数相除, 返回商和余数
用  法: ldiv_t ldiv(long lnumer, long ldenom);
程序例: <>/* ldiv example */ <>#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt; <P>int main(void)
{
   ldiv_t lx; <P>   lx = ldiv(100000L, 30000L);
   printf("100000 div 30000 = %ld remainder %ld\n", lx.quot, lx.rem);
   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:30:46 | 显示全部楼层
<>函数名: lfind
功  能: 执行线性搜索
用  法: void *lfind(void *key, void *base, int *nelem, int width,
      int (*fcmp)());
程序例: <>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt; <>int compare(int *x, int *y)
{
   return( *x - *y );
} <P>int main(void)
{
   int array[5] = {35, 87, 46, 99, 12};
   size_t nelem = 5;
   int key;
   int *result; <P>   key = 99;
   result = lfind(&amp;key, array, &amp;nelem,
        sizeof(int), (int(*)(const void *,const void *))compare);
   if (result)
      printf("Number %d found\n",key);
   else
      printf("Number %d not found\n",key); <P>   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:31:04 | 显示全部楼层
<>函数名: line
功  能: 在指定两点间画一直线
用  法: void far line(int x0, int y0, int x1, int y1);
程序例: <>#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 xmax, ymax; <P>   /* initialize graphics and local variables */
   initgraph(&amp;gdriver, &amp;gmode, ""); <P>   /* read result of initialization */
   errorcode = graphresult();
   /* an error occurred */
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n",
             grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   } <P>   setcolor(getmaxcolor());
   xmax = getmaxx();
   ymax = getmaxy(); <P>   /* draw a diagonal line */
   line(0, 0, xmax, ymax); <P>   /* clean up */
   getch();
   closegraph();
   return 0;
}
</P>
 楼主| 发表于 2004-5-9 05:31:24 | 显示全部楼层
<>函数名: linerel
功  能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线
用  法: void far linerel(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)
   {
      printf("Graphics error: %s\n",
  grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   } <P>   /* move the C.P. to location (20, 30) */
   moveto(20, 30); <P>   /* create and output a
      message at (20, 30) */
   sprintf(msg, " (%d, %d)", getx(), gety());
   outtextxy(20, 30, msg); <P>   /* draw a line to a point a relative
      distance away from the current
      value of C.P.   */
   linerel(100, 100); <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>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

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

GMT+8, 2024-11-27 02:15 , Processed in 0.056646 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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