LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 725|回复: 1

奇怪,这个我程序和我预想的不一致,scanf的用法,简单问题

[复制链接]
发表于 2004-10-4 13:51:20 | 显示全部楼层 |阅读模式
源代码如下:
#include <stdio.h>
                                                                                
int main()
                                                                                
{
                                                                                
       char a,b;
                                                                                
       scanf("%c",&a);
                                                                                
       fflush( stdin );
                                                                                
       scanf("%c",&b);
                                                                                
       printf("A is:%c\n",a);
                                                                                
       printf("B is:%c\n",b);
                                                                                
       return 0;
                                                                                
}

运行后,输入:
a b c d
它直接输出:
A is:a
B is:
按照我的设想它应该在显示A is:a以后应该提示我继续输入阿,怎么直接就运行下去了呢?fflush不是stdin都清空了吗?
 楼主| 发表于 2004-10-4 15:31:51 | 显示全部楼层
搜索了一下论坛的帖子,发现fflush(stdin)不推荐使用,
有人给出的方法是
  int c;
  while( c = getchar() != '\n' && c != EOF){
  }
难道只能这样做吗?
fflush的用法谁能详细解释一下呢?好象和windows下有点不一样,上面的程序我在windows下跑没问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表