| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:今天遇到的问题
只看楼主 加入收藏
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
 问题点数:0 回复次数:6 
今天遇到的问题

#include<stdio.h>
int main(void)
{
int n;
char q;
scanf("%d",&n);
printf("hello!\n");
scanf("%c",&q);
printf("%d\n%c",n,q);
getchar();
getchar();
getchar();
return 0;
}


用DEV编译器编译运行后,首先输入任意一个字符,然后会显示2与Q,问这个2是怎么得来的.而且一开始输入正确的整数的话,后面的字符输入也有问题,怎么回事?这涉及到什么问题?与缓冲区有关吗?请高手讨论下


[此贴子已经被作者于2006-8-1 13:26:47编辑过]

搜索更多相关主题的帖子: include return 编译器 缓冲区 hello 
2006-08-01 13:25
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用zz578在2006-8-1 13:25:25的发言:

#include<stdio.h>
int main(void)
{
int n;
char q;

scanf("%d",&n);
fflush(stdin);

printf("hello!\n");
scanf("%c",&q);  
printf("%d\n%c",n,q);
return 0;
}


用DEV编译器编译运行后,首先输入任意一个字符,然后会显示2与Q,问这个2是怎么得来的.而且一开始输入正确的整数的话,后面的字符输入也有问题,怎么回事?这涉及到什么问题?与缓冲区有关吗?请高手讨论下

一开始,如果先输入字符,然后按下回车,scanf没有成功读入数值赋给n,此时,n为随机数.显示2就是随机数.
字符和回车保留在缓冲区,被scanf("%c",&q);读入了字符,从而把字符赋给了q.
如果一开始,先输入数字,按下回车后,数字被scanf("%d",&n);成功读入,而回车仍保留在缓冲区,直接被scanf("%c",&q);读入,所以字符输入当然也有问题。


对不礼貌的女生收钱......
2006-08-01 15:17
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
多谢斑竹!

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-02 13:38
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
但为什么随机数总是2?

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-02 13:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这个应该和rand()产生的随机值是固定的原因是相同的吧。

倚天照海花无数,流水高山心自知。
2006-08-02 13:45
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
rand()是什么?

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-03 16:04
OmO
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-7-28
收藏
得分:0 
是不是random?

2006-08-03 16:17
快速回复:今天遇到的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016562 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved