⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 030.htm

📁 c programing by wangdagang
💻 HTM
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>王大刚-->C语言编程宝典-->L</TITLE>
<META NAME="keywords" CONTENT="王大刚 C语言编程宝典 L">
<META NAME="description" CONTENT="王大刚 - C语言编程宝典 - L">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="031.htm">后一页</A><BR>
<A HREF="029.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">L</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<P>函数名: labs
<BR>功&nbsp; 能: 取长整型绝对值
<BR>用&nbsp; 法: long labs(long n);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;math.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; long result;
<BR>&nbsp;&nbsp; long x = -12345678L;
<BR>
<P>&nbsp;&nbsp; result= labs(x);
<BR>&nbsp;&nbsp; printf("number: %ld abs value: %ld\n",
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x, result);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: ldexp
<BR>功&nbsp; 能: 计算value*2的幂
<BR>用&nbsp; 法: double ldexp(double value, int exp);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;math.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; double value;
<BR>&nbsp;&nbsp; double x = 2;
<BR>
<P>&nbsp;&nbsp; /* ldexp raises 2 by a power of 3
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then multiplies the result by 2&nbsp;&nbsp;
*/
<BR>&nbsp;&nbsp; value = ldexp(x,3);
<BR>&nbsp;&nbsp; printf("The ldexp value is: %lf\n",
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: ldiv
<BR>功&nbsp; 能: 两个长整型数相除, 返回商和余数
<BR>用&nbsp; 法: ldiv_t ldiv(long lnumer, long ldenom);
<BR>程序例:
<BR>
<P>/* ldiv example */
<BR>
<P>#include &lt;stdlib.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; ldiv_t lx;
<BR>
<P>&nbsp;&nbsp; lx = ldiv(100000L, 30000L);
<BR>&nbsp;&nbsp; printf("100000 div 30000 = %ld remainder %ld\n", lx.quot,
lx.rem);
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lfind
<BR>功&nbsp; 能: 执行线性搜索
<BR>用&nbsp; 法: void *lfind(void *key, void *base, int *nelem, int width,
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int (*fcmp)());
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;stdlib.h>
<BR>
<P>int compare(int *x, int *y)
<BR>{
<BR>&nbsp;&nbsp; return( *x - *y );
<BR>}
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int array[5] = {35, 87, 46, 99, 12};
<BR>&nbsp;&nbsp; size_t nelem = 5;
<BR>&nbsp;&nbsp; int key;
<BR>&nbsp;&nbsp; int *result;
<BR>
<P>&nbsp;&nbsp; key = 99;
<BR>&nbsp;&nbsp; result = lfind(&amp;key, array, &amp;nelem,
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(int), (int(*)(const
void *,const void *))compare);
<BR>&nbsp;&nbsp; if (result)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Number %d found\n",key);
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Number %d not found\n",key);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: line
<BR>功&nbsp; 能: 在指定两点间画一直线
<BR>用&nbsp; 法: void far line(int x0, int y0, int x1, int y1);
<BR>程序例:
<BR>
<P>#include &lt;graphics.h>
<BR>#include &lt;stdlib.h>
<BR>#include &lt;stdio.h>
<BR>#include &lt;conio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; /* request auto detection */
<BR>&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode;
<BR>&nbsp;&nbsp; int xmax, ymax;
<BR>
<P>&nbsp;&nbsp; /* initialize graphics and local variables */
<BR>&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, "");
<BR>
<P>&nbsp;&nbsp; /* read result of initialization */
<BR>&nbsp;&nbsp; errorcode = graphresult();
<BR>&nbsp;&nbsp; /* an error occurred */
<BR>&nbsp;&nbsp; if (errorcode != grOk)
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Graphics error: %s\n",
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
grapherrormsg(errorcode));
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Press any key to halt:");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);
<BR>&nbsp;&nbsp; }
<BR>
<P>&nbsp;&nbsp; setcolor(getmaxcolor());
<BR>&nbsp;&nbsp; xmax = getmaxx();
<BR>&nbsp;&nbsp; ymax = getmaxy();
<BR>
<P>&nbsp;&nbsp; /* draw a diagonal line */
<BR>&nbsp;&nbsp; line(0, 0, xmax, ymax);
<BR>
<P>&nbsp;&nbsp; /* clean up */
<BR>&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp; closegraph();
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: linerel
<BR>功&nbsp; 能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线
<BR>用&nbsp; 法: void far linerel(int dx, int dy);
<BR>程序例:
<BR>
<P>#include &lt;graphics.h>
<BR>#include &lt;stdlib.h>
<BR>#include &lt;stdio.h>
<BR>#include &lt;conio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; /* request auto detection */
<BR>&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode;
<BR>&nbsp;&nbsp; char msg[80];
<BR>
<P>&nbsp;&nbsp; /* initialize graphics and local variables */
<BR>&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, "");
<BR>
<P>&nbsp;&nbsp; /* read result of initialization */
<BR>&nbsp;&nbsp; errorcode = graphresult();
<BR>&nbsp;&nbsp; if (errorcode != grOk)
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Graphics error: %s\n",
<BR>&nbsp; grapherrormsg(errorcode));
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Press any key to halt:");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);
<BR>&nbsp;&nbsp; }
<BR>
<P>&nbsp;&nbsp; /* move the C.P. to location (20, 30) */
<BR>&nbsp;&nbsp; moveto(20, 30);
<BR>
<P>&nbsp;&nbsp; /* create and output a
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message at (20, 30) */
<BR>&nbsp;&nbsp; sprintf(msg, " (%d, %d)", getx(), gety());
<BR>&nbsp;&nbsp; outtextxy(20, 30, msg);
<BR>
<P>&nbsp;&nbsp; /* draw a line to a point a relative
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; distance away from the current
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value of C.P.&nbsp;&nbsp; */
<BR>&nbsp;&nbsp; linerel(100, 100);
<BR>
<P>&nbsp;&nbsp; /* create and output a message at C.P. */
<BR>&nbsp;&nbsp; sprintf(msg, " (%d, %d)", getx(), gety());
<BR>&nbsp;&nbsp; outtext(msg);
<BR>
<P>&nbsp;&nbsp; /* clean up */
<BR>&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp; closegraph();
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>
<P>函数名: localtime
<BR>功&nbsp; 能: 把日期和时间转变为结构
<BR>用&nbsp; 法: struct tm *localtime(long *clock);
<BR>程序例:
<BR>
<P>#include &lt;time.h>
<BR>#include &lt;stdio.h>
<BR>#include &lt;dos.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; time_t timer;
<BR>&nbsp;&nbsp; struct tm *tblock;
<BR>
<P>&nbsp;&nbsp; /* gets time of day */
<BR>&nbsp;&nbsp; timer = time(NULL);
<BR>
<P>&nbsp;&nbsp; /* converts date/time to a structure */
<BR>&nbsp;&nbsp; tblock = localtime(&amp;timer);
<BR>
<P>&nbsp;&nbsp; printf("Local time is: %s", asctime(tblock));
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lock
<BR>功&nbsp; 能: 设置文件共享锁
<BR>用&nbsp; 法: int lock(int handle, long offset, long length);
<BR>程序例:
<BR>
<P>#include &lt;io.h>
<BR>#include &lt;fcntl.h>
<BR>#include &lt;sys\stat.h>
<BR>#include &lt;process.h>
<BR>#include &lt;share.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int handle, status;
<BR>&nbsp;&nbsp; long length;
<BR>
<P>&nbsp;&nbsp; /* Must have DOS Share.exe loaded for */
<BR>&nbsp;&nbsp; /* file locking to function properly */
<BR>
<P>&nbsp;&nbsp; handle = sopen("c:\\autoexec.bat",
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; O_RDONLY,SH_DENYNO,S_IREAD);
<BR>
<P>&nbsp;&nbsp; if (handle &lt; 0)
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("sopen failed\n");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);
<BR>&nbsp;&nbsp; }
<BR>
<P>&nbsp;&nbsp; length = filelength(handle);
<BR>&nbsp;&nbsp; status = lock(handle,0L,length/2);
<BR>
<P>&nbsp;&nbsp; if (status == 0)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("lock succeeded\n");
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("lock failed\n");
<BR>
<P>&nbsp;&nbsp; status = unlock(handle,0L,length/2);
<BR>
<P>&nbsp;&nbsp; if (status == 0)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("unlock succeeded\n");
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("unlock failed\n");
<BR>
<P>&nbsp;&nbsp; close(handle);
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: log
<BR>功&nbsp; 能: 对数函数ln(x)
<BR>用&nbsp; 法: double log(double x);
<BR>程序例:
<BR>
<P>#include &lt;math.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; double result;
<BR>&nbsp;&nbsp; double x = 8.6872;
<BR>
<P>&nbsp;&nbsp; result = log(x);
<BR>&nbsp;&nbsp; printf("The natural log of %lf is %lf\n", x, result);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: log10
<BR>功&nbsp; 能: 对数函数log
<BR>用&nbsp; 法: double log10(double x);
<BR>程序例:
<BR>
<P>#include &lt;math.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; double result;
<BR>&nbsp;&nbsp; double x = 800.6872;
<BR>
<P>&nbsp;&nbsp; result = log10(x);
<BR>&nbsp;&nbsp; printf("The common log of %lf is %lf\n", x, result);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: longjump
<BR>功&nbsp; 能: 执行非局部转移
<BR>用&nbsp; 法: void longjump(jmp_buf env, int val);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;setjmp.h>
<BR>#include &lt;stdlib.h>
<BR>
<P>void subroutine(jmp_buf);
<BR>
<P>int main(void)
<BR>{
<BR>
<P>&nbsp;&nbsp; int value;
<BR>&nbsp;&nbsp; jmp_buf jumper;
<BR>
<P>&nbsp;&nbsp; value = setjmp(jumper);
<BR>&nbsp;&nbsp; if (value != 0)
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Longjmp with value %d\n", value);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(value);
<BR>&nbsp;&nbsp; }
<BR>&nbsp;&nbsp; printf("About to call subroutine ... \n");
<BR>&nbsp;&nbsp; subroutine(jumper);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>
<P>void subroutine(jmp_buf jumper)
<BR>{
<BR>&nbsp;&nbsp; longjmp(jumper,1);
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lowvideo
<BR>功&nbsp; 能: 选择低亮度字符
<BR>用&nbsp; 法: void lowvideo(void);
<BR>程序例:
<BR>
<P>#include &lt;conio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; clrscr();
<BR>
<P>&nbsp;&nbsp; highvideo();
<BR>&nbsp;&nbsp; cprintf("High Intesity Text\r\n");
<BR>&nbsp;&nbsp; lowvideo();
<BR>&nbsp;&nbsp; gotoxy(1,2);
<BR>&nbsp;&nbsp; cprintf("Low Intensity Text\r\n");
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lrotl, _lrotl
<BR>功&nbsp; 能: 将无符号长整型数向左循环移位
<BR>用&nbsp; 法: unsigned long lrotl(unsigned long lvalue, int count);
<BR>&nbsp;unsigned long _lrotl(unsigned long lvalue, int count);
<BR>程序例:
<BR>
<P>/* lrotl example */
<BR>#include &lt;stdlib.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; unsigned long result;
<BR>&nbsp;&nbsp; unsigned long value = 100;
<BR>
<P>&nbsp;&nbsp; result = _lrotl(value,1);
<BR>&nbsp;&nbsp; printf("The value %lu rotated left one bit is: %lu\n",
value, result);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lsearch
<BR>功&nbsp; 能: 线性搜索
<BR>用&nbsp; 法: void *lsearch(const void *key, void *base, size_t *nelem,
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size_t width, int (*fcmp)(const
void *, const void *));
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;stdlib.h>
<BR>
<P>int compare(int *x, int *y)
<BR>{
<BR>&nbsp;&nbsp; return( *x - *y );
<BR>}
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int array[5] = {35, 87, 46, 99, 12};
<BR>&nbsp;&nbsp; size_t nelem = 5;
<BR>&nbsp;&nbsp; int key;
<BR>&nbsp;&nbsp; int *result;
<BR>
<P>&nbsp;&nbsp; key = 99;
<BR>&nbsp;&nbsp; result = lfind(&amp;key, array, &amp;nelem,
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sizeof(int), (int(*)(const void *,const void *))compare);
<BR>&nbsp;&nbsp; if (result)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Number %d found\n",key);
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Number %d not found\n",key);
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: lseek
<BR>功&nbsp; 能: 移动文件读/写指针
<BR>用&nbsp; 法: long lseek(int handle, long offset, int fromwhere);
<BR>程序例:
<BR>
<P>#include &lt;sys\stat.h>
<BR>#include &lt;string.h>
<BR>#include &lt;stdio.h>
<BR>#include &lt;fcntl.h>
<BR>#include &lt;io.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int handle;
<BR>&nbsp;&nbsp; char msg[] = "This is a test";
<BR>&nbsp;&nbsp; char ch;
<BR>
<P>&nbsp;&nbsp; /* create a file */
<BR>&nbsp;&nbsp; handle = open("TEST.$$$", O_CREAT | O_RDWR, S_IREAD |
S_IWRITE);
<BR>
<P>&nbsp;&nbsp; /* write some data to the file */
<BR>&nbsp;&nbsp; write(handle, msg, strlen(msg));
<BR>
<P>&nbsp;&nbsp; /* seek to the begining of the file */
<BR>&nbsp;&nbsp; lseek(handle, 0L, SEEK_SET);
<BR>
<P>&nbsp;&nbsp; /* reads chars from the file until we hit EOF */
<BR>&nbsp;&nbsp; do
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(handle, &amp;ch, 1);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%c", ch);
<BR>&nbsp;&nbsp; }&nbsp; while (!eof(handle));
<BR>
<P>&nbsp;&nbsp; close(handle);
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>
<hr color="#EE9B73" size="1" width="94%">

</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="031.htm">后一页</A><BR>
<A HREF="029.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -