首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言 scanf的有关问题

2012-10-20 
C语言 scanf的问题!#include stdio.hint main(void){char chscanf(%c,&ch)for(ch$ch ! gsca

C语言 scanf的问题!
#include <stdio.h>
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里

[解决办法]
先存放在缓冲区里面
[解决办法]
Go well,young man!
先都放在输入缓冲区中。。然后scanf("%c",&ch)一次去读一个char大小的东西。。把它放在ch这个地址上。。
[解决办法]
scanf对流的操作遵从类型匹配操作原则,如果类型不匹配,它将不读取输入流。 因此输入流将滞留,如果输入流不空,scanf不会等待用户输入,直接从缓冲区中输入. 

缓冲区的大小,因操作系统,标准库的不同而不同。。。。。。 用C在windows下256个字节或512个字节,而在c++中好像是4096个字节..

热点排行
Bad Request.