| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:关于清空继续的问题
只看楼主 加入收藏
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
关于清空继续的问题
请问各位fflush(stdin);这句语句是清空的意思,该如何使用fflush(stdin);这语句,请举例说明,万分感激
搜索更多相关主题的帖子: 如何 
2012-11-25 15:11
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
比如你用scanf读取一个整形数据,那么实际获取的时候,整型被读入了指定的变量中,缓冲区中留了一个回车。这样就需要fflush(stdin);来清空,否则,你后面运行代码中,如果用getchar函数来获取,那么首先得到的字符是回车。
你可以参考下面这个帖子,作为一个实例
https://bbs.bccn.net/viewthread.php?tid=387442&page=1#pid2186719

[ 本帖最后由 pauljames 于 2012-11-25 15:38 编辑 ]

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-25 15:37
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
请给一个短的程序,那个太长,看得头晕
2012-11-25 15:46
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
#include <stdio.h>
int main()
{
    int a;
    char c;
    scanf("%d",&a);
    c=getchar();
    printf("%d",c);
   
   
    getch();
    return 0;
}

够短了吧,你可以看到输入一个整数后,打印出一个10,正是'\n'对应的ASCII

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-25 16:02
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
你有没有搞错啊,你的c是字符型能用%d输出吗,且就算改了也不对,你也没有用到fflush(stdin);这语句啊
2012-11-25 17:27
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:7 

你看看这个帖子   
      
https://bbs.bccn.net/viewthread.php?tid=379580&page=1#pid2141950

喜欢睡觉 却经常熬夜
2012-11-25 17:43
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
字符型不能用%d输出?我要的就是ASCII码。举这个例子是为了说明scanf留了一个'\n'在缓冲区内,如果你下面有代码判断输入字符需要小心;当然你如果用fflush(stdin);后,缓冲区就没东西了,可以放心使用。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-25 18:34
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:7 
是清空输入缓冲区的意思,例如:
scanf("%d",&a);
scanf("%c",&c);
经常如果这种情况的话,第一次输入的回车可能会被第二次输入操作所捕捉,如果在中间加入fflush(stdin);就可以解决这个问题,这个的作用就是清空缓冲,这样就不会出现这种情况了。
2012-11-25 22:16
快速回复:关于清空继续的问题
数据加载中...
 
   



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

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