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

📄 fh.htm

📁 c语言基本的应用便于初学者学习使用 简单易懂
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="Author" content="wdg">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>网上学堂 --> C语言编程宝典之一 -->函数名: h</title>
</head>

<body>
<div align="center"><center>

<table border="1" cellpadding="4" width="640"
bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
    <tr>
        <td bgcolor="#FFE6B0" bordercolor="#8080FF" class="p9"><font
        color="#BB0000">导航条:--&gt;</font> <a
        href="../../index.html">网上学堂</a> --&gt; <a
        href="../tcindex.htm"><font face="宋体">C</font>语言编程宝典之一</a>
        --&gt;函数名: h</td>
    </tr>
    <tr>
        <td bordercolor="#8080FF" class="p9"><p>函数名:
        harderr <br>
        功&nbsp; 能: 建立一个硬件错误处理程序 <br>
        用&nbsp; 法: void harderr(int (*fptr)()); <br>
        程序例: <br>
        /*This program will trap disk errors and prompt <br>
        the user for action. Try running it with no <br>
        disk in drive A: to invoke its functions.*/ </p>
        <p>#include &lt;stdio.h&gt; <br>
        #include &lt;conio.h&gt; <br>
        #include &lt;dos.h&gt; <br>
        #define IGNORE&nbsp; 0 <br>
        #define RETRY&nbsp;&nbsp; 1 <br>
        #define ABORT&nbsp;&nbsp; 2 <br>
        int buf[500]; <br>
        /*define the error messages for trapping disk problems*/ <br>
        static char *err_msg[] = { <br>
        &nbsp;&nbsp;&nbsp; &quot;write protect&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown unit&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;drive not ready&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown command&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;data error (CRC)&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;bad request&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;seek error&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown media type&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;sector not found&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;printer out of paper&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;write fault&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;read fault&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;general failure&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;reserved&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;reserved&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;invalid disk change&quot; <br>
        }; </p>
        <p>error_win(char *msg) <br>
        { <br>
        &nbsp;&nbsp; int retval; </p>
        <p>&nbsp;&nbsp; cputs(msg); </p>
        <p>/*prompt for user to press a key to abort, retry,
        ignore*/ <br>
        &nbsp;&nbsp; while(1) <br>
        &nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retval= getch(); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'a' ||
        retval == 'A') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp; retval = ABORT; <br>
        &nbsp;&nbsp;&nbsp; break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'r' ||
        retval == 'R') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp; retval = RETRY; <br>
        &nbsp;&nbsp;&nbsp; break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'i' ||
        retval == 'I') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        retval = IGNORE; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp; } </p>
        <p>&nbsp;&nbsp; return(retval); <br>
        } </p>
        <p>/*pragma warn -par reduces warnings which occur <br>
        due to the non use of the parameters errval, <br>
        bp and si to the handler.*/ <br>
        #pragma warn -par </p>
        <p>int handler(int errval,int ax,int bp,int si) <br>
        { <br>
        &nbsp;&nbsp; static char msg[80]; <br>
        &nbsp;&nbsp; unsigned di; <br>
        &nbsp;&nbsp; int drive; <br>
        &nbsp;&nbsp; int errorno; <br>
        &nbsp;&nbsp; di= _DI; <br>
        /*if this is not a disk error then it was <br>
        another device having trouble*/ </p>
        <p>&nbsp;&nbsp; if (ax &lt; 0) <br>
        &nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* report the error */ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error_win(&quot;Device
        error&quot;); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* and return to the
        program directly requesting abort */ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hardretn(ABORT); <br>
        &nbsp;&nbsp; } <br>
        /* otherwise it was a disk error */ <br>
        &nbsp;&nbsp; drive = ax &amp; 0x00FF; <br>
        &nbsp;&nbsp; errorno = di &amp; 0x00FF; <br>
        /* report which error it was */ <br>
        &nbsp;&nbsp; sprintf(msg, &quot;Error: %s on drive
        %c\r\nA)bort, R)etry, I)gnore: &quot;, <br>
        &nbsp;&nbsp;&nbsp; err_msg[errorno], 'A' + drive); <br>
        /* <br>
        return to the program via dos interrupt 0x23 with abort,
        retry, <br>
        or ignore as input by the user. <br>
        */ <br>
        &nbsp;&nbsp; hardresume(error_win(msg)); <br>
        &nbsp;&nbsp; return ABORT; <br>
        } <br>
        #pragma warn +par </p>
        <p>int main(void) <br>
        { <br>
        /* <br>
        install our handler on the hardware problem interrupt <br>
        */ <br>
        &nbsp;&nbsp; harderr(handler); <br>
        &nbsp;&nbsp; clrscr(); <br>
        &nbsp;&nbsp; printf(&quot;Make sure there is no disk in
        drive A:\n&quot;); <br>
        &nbsp;&nbsp; printf(&quot;Press any key ....\n&quot;); <br>
        &nbsp;&nbsp; getch(); <br>
        &nbsp;&nbsp; printf(&quot;Trying to access drive
        A:\n&quot;); <br>
        &nbsp;&nbsp; printf(&quot;fopen returned
        %p\n&quot;,fopen(&quot;A:temp.dat&quot;, &quot;w&quot;));
        <br>
        &nbsp;&nbsp; return 0; <br>
        } <br>
        &nbsp; <br>
        &nbsp; </p>
        <p>函数名: hardresume <br>
        功&nbsp; 能: 硬件错误处理函数 <br>
        用&nbsp; 法: void hardresume(int rescode); <br>
        程序例: <br>
        &nbsp; </p>
        <p>/* This program will trap disk errors and prompt the
        user for action. */ <br>
        /* Try running it with no disk in drive A: to invoke its
        functions&nbsp;&nbsp;&nbsp; */ </p>
        <p>#include &lt;stdio.h&gt; <br>
        #include &lt;conio.h&gt; <br>
        #include &lt;dos.h&gt; </p>
        <p>#define IGNORE&nbsp; 0 <br>
        #define RETRY&nbsp;&nbsp; 1 <br>
        #define ABORT&nbsp;&nbsp; 2 </p>
        <p>int buf[500]; </p>
        <p>/* define the error messages for trapping disk
        problems */ <br>
        static char *err_msg[] = { <br>
        &nbsp;&nbsp;&nbsp; &quot;write protect&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown unit&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;drive not ready&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown command&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;data error (CRC)&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;bad request&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;seek error&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;unknown media type&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;sector not found&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;printer out of paper&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;write fault&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;read fault&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;general failure&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;reserved&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;reserved&quot;, <br>
        &nbsp;&nbsp;&nbsp; &quot;invalid disk change&quot; <br>
        }; </p>
        <p>error_win(char *msg) <br>
        { <br>
        &nbsp;&nbsp; int retval; </p>
        <p>&nbsp;&nbsp; cputs(msg); </p>
        <p>/* prompt for user to press a key to abort, retry,
        ignore */ <br>
        &nbsp;&nbsp; while(1) <br>
        &nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retval= getch(); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'a' ||
        retval == 'A') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        retval = ABORT; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'r' ||
        retval == 'R') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        retval = RETRY; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (retval == 'i' ||
        retval == 'I') <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        retval = IGNORE; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        break; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp; } </p>
        <p>&nbsp;&nbsp; return(retval); <br>
        } </p>
        <p>/* pragma warn -par reduces warnings which occur due
        to the non use */ <br>
        /* of the parameters errval, bp and si to the handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        */ <br>
        #pragma warn -par </p>
        <p>int handler(int errval,int ax,int bp,int si) <br>
        { <br>
        &nbsp;&nbsp; static char msg[80]; <br>
        &nbsp;&nbsp; unsigned di; <br>
        &nbsp;&nbsp; int drive; <br>
        &nbsp;&nbsp; int errorno; </p>
        <p>&nbsp;&nbsp; di= _DI; <br>
        /* if this is not a disk error then it was another device
        having trouble */ </p>
        <p>&nbsp;&nbsp; if (ax &lt; 0) <br>
        &nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* report the error */ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error_win(&quot;Device
        error&quot;); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* and return to the
        program directly <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting abort */ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hardretn(ABORT); <br>
        &nbsp;&nbsp; } <br>
        /* otherwise it was a disk error */ <br>
        &nbsp;&nbsp; drive = ax &amp; 0x00FF; <br>
        &nbsp;&nbsp; errorno = di &amp; 0x00FF; <br>
        /* report which error it was */ <br>
        &nbsp;&nbsp; sprintf(msg, &quot;Error: %s on drive
        %c\r\nA)bort, R)etry, I)gnore: &quot;, <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        err_msg[errorno], 'A' + drive); <br>
        /* return to the program via dos interrupt 0x23 with
        abort, retry */ <br>
        /* or ignore as input by the user.&nbsp; */ <br>
        &nbsp;&nbsp; hardresume(error_win(msg)); <br>
        &nbsp;&nbsp; return ABORT; <br>
        } <br>
        #pragma warn +par </p>
        <p>int main(void) <br>
        { <br>
        /* install our handler on the hardware problem interrupt
        */ <br>
        &nbsp;&nbsp; harderr(handler); <br>
        &nbsp;&nbsp; clrscr(); <br>
        &nbsp;&nbsp; printf(&quot;Make sure there is no disk in
        drive A:\n&quot;); <br>
        &nbsp;&nbsp; printf(&quot;Press any key ....\n&quot;); <br>
        &nbsp;&nbsp; getch(); <br>
        &nbsp;&nbsp; printf(&quot;Trying to access drive
        A:\n&quot;); <br>
        &nbsp;&nbsp; printf(&quot;fopen returned
        %p\n&quot;,fopen(&quot;A:temp.dat&quot;, &quot;w&quot;));
        <br>
        &nbsp;&nbsp; return 0; <br>
        } <br>
        &nbsp; <br>
        &nbsp; </p>
        <p>函数名: highvideo <br>
        功&nbsp; 能: 选择高亮度文本字符 <br>
        用&nbsp; 法: void highvideo(void); <br>
        程序例: </p>
        <p>#include &lt;conio.h&gt; </p>
        <p>int main(void) <br>
        { <br>
        &nbsp;&nbsp; clrscr(); </p>
        <p>&nbsp;&nbsp; lowvideo(); <br>
        &nbsp;&nbsp; cprintf(&quot;Low Intensity text\r\n&quot;);
        <br>
        &nbsp;&nbsp; highvideo(); <br>
        &nbsp;&nbsp; gotoxy(1,2); <br>
        &nbsp;&nbsp; cprintf(&quot;High Intensity
        Text\r\n&quot;); </p>
        <p>&nbsp;&nbsp; return 0; <br>
        } <br>
        &nbsp; <br>
        &nbsp; </p>
        <p>函数名: hypot <br>
        功&nbsp; 能: 计算直角三角形的斜边长 <br>
        用&nbsp; 法: double hypot(double x, double y); <br>
        程序例: </p>
        <p>#include &lt;stdio.h&gt; <br>
        #include &lt;math.h&gt; </p>
        <p>int main(void) <br>
        { <br>
        &nbsp;&nbsp; double result; <br>
        &nbsp;&nbsp; double x = 3.0; <br>
        &nbsp;&nbsp; double y = 4.0; </p>
        <p>&nbsp;&nbsp; result = hypot(x, y); <br>
        &nbsp;&nbsp; printf(&quot;The hypotenuse is: %lf\n&quot;,
        result); </p>
        <p>&nbsp;&nbsp; return 0; <br>
        } <br>
        &nbsp; </p>
        </td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellspacing="1" width="640">
    <tr>
        <td class="p9" height="60">  <script>document.write("<p><a href=\"http://view.gznet.com/cgi-bin/rl_views.cgi?UID=10013421\" target=sxrl>"); 
document.write("<img src=\"http://refer.gznet.com/cgi-bin/rl_refer2.cgi?UID=10013421&refer="+escape(top.document.referrer)+"\" width=1 height=1 border=0 alt=\"  \">"); 
document.write("</a>"); 
</script></td>
    </tr>
</table>
</center></div>
</body>
</html>

⌨️ 快捷键说明

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