标题:关于while()语句的一个小问题。
取消只看楼主
Maps
Rank: 2
等 级:论坛游民
帖 子:16
专家分:10
注 册:2015-3-8
结帖率:66.67%
已结贴  问题点数:15 回复次数:2 
关于while()语句的一个小问题。
源代码如下
#include"stdio.h"

main()
{
    char c1;
    char c2;
    int player=1;
    while(1)
    {
       if(player==1)
        {
            printf(" 1\n");
            scanf("%c",&c1);
            printf("%c",c1);
            player=2;
        }
        if(player==2)
        {
            printf(" 2 \n");
            scanf("%c",&c2);
            printf("%c",c2);
            player=1;
        }
    }
}
这个程序我想要的目的是if语句交替进入, 输出一个1 ,给c1赋值一个字符,紧着输出2 为c2赋值,但是程序运行的结果为什么是
首先输出 1 当我随便输入一个字母的时候比如s  ,之后则是  s  2   1 ,疑问就是为什么进入 if(player==2)这个语句的时候那个scanf语句似乎是失效了?为什么不让输入
了?请各位大神指点一下啊
搜索更多相关主题的帖子: include 源代码 player 
2015-10-24 08:00
Maps
Rank: 2
等 级:论坛游民
帖 子:16
专家分:10
注 册:2015-3-8
得分:0 
回复 4楼 随风的飞叶
确实是空格赋值给了c2 。。
现在在每一个赋值语句后面加入 fflush(stdin); 这个清除输入流的缓冲区就可以进行交替输入了。

看到了编程大海的一角,我还在努力的寻找方向,
2015-10-24 22:05
Maps
Rank: 2
等 级:论坛游民
帖 子:16
专家分:10
注 册:2015-3-8
得分:0 
回复 2楼 rjsp
这个是输出什么的啊? 不懂啊

看到了编程大海的一角,我还在努力的寻找方向,
2015-10-24 22:08



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




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

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