scanf 函数的输入问题

ipqhjjybj 2010-04-25 06:24:01
#include <stdio.h> // 无问题的代码 重复输入保证不问题
#include <stdlib.h>
main()
{
int a,b;
int c;
while(1){
scanf("%d %d %d",&c,&a,&b);
if( c == 5) printf("1 %d %d %d\n",a,b,c);
printf("2 %d %d %d",a,b,c);
system("pause");}
return 0;
}
#include <stdio.h> // 是有问题的..这个很让人纠结... 你可以自己试几个...
#include <stdlib.h>
main()
{
int a,b;
int c;
while(1){
scanf("%c %d %d",&c,&a,&b);
if( c == 'c') printf("1 %d %d %c\n",a,b,c);
printf("2 %d %d %c",a,b,c);
system("pause");}
return 0;
}
我很想弄明白这是怎么回事 . 是不是输入时的缓冲区有问题? 期待高手..
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2010-04-25
  • 打赏
  • 举报
回复
个人认为不用在stdout/stdin上花太多时间,现在在这上做文章得太少了,都有GUI了,何必做这个
ipqhjjybj 2010-04-25
  • 打赏
  • 举报
回复
关于8楼的...不好意思,我这个int型暂时没改过来....我原来调试的时候已经改过来了..
昵称很不好取 2010-04-25
  • 打赏
  • 举报
回复
scanf("%c %d %d",&c,&a,&b);
—— c是int,输入时候却用了%c
十八道胡同 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huanmie_09 的回复:]

楼主可以看看:
http://topic.csdn.net/u/20100413/22/e1f309ba-437c-4375-9eb6-b1be52da6429.html
[/Quote]
在7楼解释的很好!
缓冲区的问题
yyg990441 2010-04-25
  • 打赏
  • 举报
回复
是不是输入时的缓冲区有问题?
是的.
scanf("%c %d %d",&c,&a,&b);
比如你输入:1 2 3 \n
第一次循环,.c=1,a=2,b=3
输入缓冲区还剩\n,第2次循环c='\n'
cjl701 2010-04-25
  • 打赏
  • 举报
回复
输入的格式一定要注意,试试不空格去了。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧