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

📄 subject_30386.htm

📁 vc
💻 HTM
字号:
<p>
序号:30386 发表者:IT40 发表日期:2003-02-22 18:52:03
<br>主题:高手请进!关于scanf
<br>内容:#include"stdio.h"<BR>main()<BR>{<BR>int t;<BR>char a,temp;<BR>while(scanf("%d",&amp;t)!=1)<BR>{<BR>scanf("%c",&amp;temp);<BR>printf("ERROR!Input again!");<BR>}<BR>scanf("%c",&amp;a);<BR>printf("%c\t%d\n",a,t);<BR>}<BR>程序目的是输入一个数字,一个字母,并输出,为了防止输入数字时输入字母所以用了while语句,可是:<BR>为什么输入了数字之后,scanf("%c",&amp;a);不能实现<BR>当然数字是放在了t里了。<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>
回复者:流诊圆 回复日期:2003-02-22 21:00:58
<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-22 21:03:22
<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>
<font color=red>答案被接受</font><br>回复者:Sam 回复日期:2003-02-22 22:11:24
<br>内容:因为你在输入了数字后必须以\n(回车)为结束,我们简单的假设在第一个scanf时用户输入了1\n,在stdin的输入buffer中是这样存储的"1\0x0A\0x0D"已经有了,也就是说当第一次调用scanf函数后stdin的buffer还不是空,scanf只取到1为止,即buffer中存储量“\0x0A\0x0D”所以当第二个scanf函数取的是一个字符,0x0A就被认为是一个正常的字符给了a,所以你会觉得第二个scanf函数不能实现,但它实际上是正常执行了,你可以用scanf("%d %c",&amp;t,&amp;c)来实现你的功能!<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;献丑了!!!
<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 + -