标题:scanf “c%"的问题,为什么写多次运行后,总会间隔scanf?
只看楼主
futurewei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-23
结帖率:0
已结贴  问题点数:20 回复次数:6 
scanf “c%"的问题,为什么写多次运行后,总会间隔scanf?
   int main()
{ char good;
    printf("Please input a:\n");
    scanf_s("%c",&good);
    if(good=='a');
    {printf("Hello~\n");}

    printf("Please input a:\n");
    scanf_s("%c",&good);
    if(good=='a');
    {printf("Hello~\n");}

    printf("Please input a:\n");
    scanf_s("%c",&good);
    if(good=='a');
    {printf("Hello~\n");}
}

输出是:

Please input a:
(输入)
Hello~
Please input a:
Hello~
Please input a:
(输入)
Hello~

按理说应该有三次scanf的输入,但实际上会跳过中间的那一次,求指教!


[ 本帖最后由 futurewei 于 2011-7-23 15:56 编辑 ]
搜索更多相关主题的帖子: 间隔 
2011-07-23 15:45
y515382
Rank: 2
等 级:论坛游民
帖 子:38
专家分:16
注 册:2011-7-9
得分:4 
好像是重复了,中间那段有与没有没分别啊
2011-07-23 15:51
futurewei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-23
得分:0 
回复 2楼 y515382
现在不是三次scanf吗?为啥运行的时候中间的不scanf了==
2011-07-23 15:53
zjslwyp
Rank: 2
等 级:论坛游民
帖 子:42
专家分:76
注 册:2011-3-24
得分:4 
你把每句
    printf("Please input a:\n");
后面的\n去掉就OK了。你试试吧!
2011-07-24 00:32
连少少
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2011-7-24
得分:4 
好像是少了一个{}这个吧,按你的编译来看是少了吧,你填进去试试
2011-07-24 00:42
wjm22
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:44
专家分:118
注 册:2011-7-5
得分:4 
在第一个scanf加getchar
2011-07-24 00:50
mxshy
Rank: 1
等 级:新手上路
帖 子:5
专家分:6
注 册:2011-7-24
得分:4 
这是缓存的问题,也就是说scanf不好的地方,如果用cin就没事了
#include <iostream>
using namespace std;
int main ()
{
   
    char good;
    printf("Please input a:\n");
    cin>>good;
    if(good=='a')
    {printf("Hello~\n");};

    printf("Please input a:\n");
        
    cin>>good;
     if(good=='a')
    {printf("Hello~\n");};

    printf("Please input a:\n");
    cin>>good;
   
if(good=='a')
    {printf("Hello~");};
   
    return 0;

}
2011-07-24 10:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-345929-1-1.html




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

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