当前位置: 代码迷 >> C语言 >> [求助]关于缓冲流输入时候出错问题
  详细解决方案

[求助]关于缓冲流输入时候出错问题

热度:126   发布时间:2007-09-21 20:19:32.0
#include <stdio.h>
int main()
{
int a,b,c;

char d,e,f;

scanf("%d%d",&a,&c);
scanf("%c",&d);
scanf("%d",&b);
scanf("%c",&e);
scanf("%c",&f);
printf("a=%d,c=%d,d=%c,b=%d,e=%c,f=%c",a,c,d,b,e,f);
return 0;
}
改成这样你就能看得很清楚,两次回车分别被d和f吃掉了,b之所以是随机数,是因为输入流中w与b所期待的类型不匹配,跳过,从而使b没有被初始化。。。


----------------解决方案--------------------------------------------------------
why ? 为什么你们对FAQ的内容视而不见呢?

http://bbs.bc-cn.net/viewthread.php?tid=171705

----------------解决方案--------------------------------------------------------
哦,谢谢

[此贴子已经被作者于2007-9-21 20:26:13编辑过]



----------------解决方案--------------------------------------------------------

11楼但是我把d的%c改为%d为什么还是随即呢?


----------------解决方案--------------------------------------------------------
scanf("%d",&d);接收了
大概回车被提升了
1回车
2回车→接收了这个回车,你的这个输出应该是个整数吧

[此贴子已经被作者于2007-9-21 20:39:18编辑过]


----------------解决方案--------------------------------------------------------
请参见12楼吧,我不想被斑竹BS。。。
----------------解决方案--------------------------------------------------------
我是菜鸟,不怕BS
----------------解决方案--------------------------------------------------------
我说的不是技术上的BS

况且我们要支持一下FAQ。。。
----------------解决方案--------------------------------------------------------
我支持兄弟,不要再讨论了,脱离了主题
你帮他解释吧,我每次都是踏踏实实编程
叫我不要用scanf,我没用,就用了fscanf和sscanf
怎么我就没遇到这些问题
我编程哪里看到这么多特别情况
都很容易通过,也很常见的方式
怎么就有这么多问题呢?
我在论坛,长了这方面知识
----------------解决方案--------------------------------------------------------

#include <stdio.h>
main()
{
int a,b,c;

char d,e,f;

scanf("%d%d%*c",&a,&c); //加个%*c 看看~~我也不是很行~~呵呵~~
scanf("%c",&d);
scanf("%d",&b);
scanf("%c",&e);
scanf("%c",&f);
printf("%d,%d,%c,%d,%c,%c",a,c,d,b,e,f);
}


----------------解决方案--------------------------------------------------------
  相关解决方案