您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> C语言 scanf的问题!

C语言 scanf的问题!

来源:网络整理     时间:2016/7/14 14:07:47     关键词:

关于网友提出的“ C语言 scanf的问题!”问题疑问,本网通过在网上对“ C语言 scanf的问题!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: C语言 scanf的问题!
描述:

#include 
int main(void)
{
 char ch;
 scanf("%c",&ch);
 for(ch='$';ch != 'g';scanf("%c",&ch))
putchar(ch);
}
在第一个scanf("%c",&ch)
连续输入Go well,young man!
后面的o well....数扰保存在那里呢?
从调试里看到第二个scanf("%c",&ch)
&ch都是取同一个地址,就说是GO well,young man!会自动填充到&ch里


解决方案1:

scanf对流的操作遵从类型匹配操作原则,如果类型不匹配,它将不读取输入流。 因此输入流将滞留,如果输入流不空,scanf不会等待用户输入,直接从缓冲区中输入. 
缓冲区的大小,因操作系统,标准库的不同而不同。。。。。。 用C在windows下256个字节或512个字节,而在c++中好像是4096个字节..

解决方案2:

先存放在缓冲区里面

解决方案3:

Go well,young man!
先都放在输入缓冲区中。。然后scanf("%c",&ch)一次去读一个char大小的东西。。把它放在ch这个地址上。。


以上介绍了“ C语言 scanf的问题!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2633294.html

相关图片

相关文章