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

📄 subject_29467.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:29467 发表者:IT40 发表日期:2003-02-08 14:45:42
<br>主题:高手请进!看两个小程序!我快晕死了!!
<br>内容:1.<BR>main()<BR>{<BR>int n;<BR><BR>printf("Please input a integer:\n");<BR>while(scanf("%d",&amp;n)!=1)<BR>{<BR>&nbsp;&nbsp; printf("ERROR,input again\n");<BR>}<BR>printf("you input %d\n",n);<BR>}<BR>2.<BR>main()<BR>{<BR>int n;<BR>printf("Please input a integer:\n");<BR><BR>while(scanf("%d",&amp;n)==1)<BR>printf("%d\n",n);<BR>printf("ERROR!\n");<BR>}<BR>这两个程序都是while语句中以scanf语句为条件,但是第二个是正确的,第一个如果输入字母的话是死循环,要用ctrl+z来结束.我觉得输入字母后,scanf这个语句既然为0,(0!=1)成立,那么应该继续执行scanf,直到输入了数字才会停止while,就像第2个程序,如果输入数字,就继续执行while,那2题为什么不死循环呢?<BR><BR><BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:74LS373 回复日期:2003-02-08 15:25:22
<br>内容:scanf再不成功是不会清除掉键盘缓冲区中的数据,所以第一次scanf("%d",&amp;n)不成功时,第二次即使不按键scanf还能继续执行,建议改成:<BR>int main(<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int n;<BR>&nbsp;&nbsp;&nbsp;&nbsp;char c<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("Please input a integer:\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(scanf("%d",&amp;n)!=1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%c",&amp;c);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("ERROR,input again\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("you input %d\n",n);<BR>}即可
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:IT40 回复日期:2003-02-08 16:25:58
<br>内容:高手啊!暴力感谢!<BR>那个scanf("%c",&amp;c);就是把键盘缓存区的数据给接受了是吗<BR>就是这个作用吧?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:74LS373 回复日期:2003-02-08 16:37:05
<br>内容:是的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:winson 回复日期:2003-02-20 14:45:14
<br>内容:加上一句:<BR>&nbsp;&nbsp; fflush(stdin);<BR><BR>即可,清除stdin;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:维生素C 回复日期:2003-02-21 22:56:15
<br>内容:如果使用while(cin&gt;&gt;n,n!=1/*只是举例*/){......};<BR>该怎么办?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

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