|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么会不运行第二个scanf
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
876
人关注过本帖
标题:
为什么会不运行第二个scanf
只看楼主
加入收藏
a250621226
等 级:
论坛游民
帖 子:17
专家分:13
注 册:2007-3-3
结帖率:
66.67%
楼主
收藏
问题点数:0 回复次数:5
为什么会不运行第二个scanf
#include <stdio.h>
#include <stdlib.h>
int main ()
{long
int a=250621,s;
char d;
do
{
scanf ("%d",&s);
if (s==a)
printf("成功进入");
else
printf("错误\n");
scanf ("%c",&d);//这句一直不运行
}
while (d=='y'||d=='Y');
system ("pause");
}
搜索更多相关主题的帖子:
include
system
2013-07-10 10:18
举报帖子
使用道具
赠送鲜花
love云彩
来 自:青藏高原
等 级:
贵宾
威 望:
53
帖 子:3663
专家分:11416
注 册:2012-11-17
第
2
楼
收藏
得分:0
把第二个scanf放在第一个scanf的后面试试
思考赐予新生,时间在于定义
2013-07-10 11:13
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9032
专家分:54061
注 册:2011-1-18
第
3
楼
收藏
得分:0
scanf ("%d",&s); 改为 scanf ("%ld",&s);
scanf ("%c",&d); 改为 scanf (" %c",&d);
2013-07-10 12:02
举报帖子
使用道具
赠送鲜花
qq525273446
等 级:
论坛游侠
威 望:
1
帖 子:54
专家分:161
注 册:2009-11-18
第
4
楼
收藏
得分:0
fflush(stdin);//刷下缓冲区
scanf ("%c",&d);//这句一直不运行
其实每次用scanf()函数之前
应该用while顺环清空缓冲区
while(0==scanf("%c",&d)
{
scanf("%*[^\n]");
scanf("%*c");
}
找工作中……
2013-07-10 23:45
举报帖子
使用道具
赠送鲜花
gg0013
等 级:
论坛游民
帖 子:25
专家分:16
注 册:2012-11-26
第
5
楼
收藏
得分:0
围观下.
2013-07-11 00:49
举报帖子
使用道具
赠送鲜花
cheetah
等 级:
论坛游侠
威 望:
3
帖 子:120
专家分:118
注 册:2013-6-29
第
6
楼
收藏
得分:0
第二个scanf ()其实运行了,只是你没有发现。当执行第一个scanf ()时,输入一个整数按下一个空格,记住这里传递了两个值,第一个值是输入的整数传递给了第一个scanf (),第二个值传递给了第二个scanf ().第二个值就是你按下的那个空格。解决的办法有很多,在第二个scanf ()前面加个getchar ();或者像三楼说的那样格式输入符前加个空格;因为加个空格与不加空格的区别在于:不加空格读取任何字符(包括空格与换行),而加了空格之后读取遇到的第一个非空格与换行字符。你犯的错误就是前者。
[
本帖最后由 cheetah 于 2013-7-12 19:04 编辑
]
天道酬勤
2013-07-12 19:03
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
为什么会不运行第二个scanf
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016843 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved