<cstdio> (stdio.h)中的fflush函数

本文详细介绍了fflush函数的调用格式及其返回值含义,通过示例展示了如何使用fflush清除输入缓冲区,解决因连续使用scanf导致的输入残留问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用格式
int fflush ( FILE * stream );
返回:
  • 当成功时,返回0
  • 发生error时,返回EOF,并设置错误提示符
参数:
  • 指向一个指定缓冲流( buffered stream)FILE实体的指针
  • 如果stream为null指针,则all such streams are flushed.
简单实例
#include <stdio.h>  
int main()  
{  
    char c;  
    scanf("%c", &c);  
    printf("%d\n", c);  

    scanf("%c", &c);  
    printf("%d\n", c);  

    return 0;  
} 

运行这个程序,输入1, 并按enter键,结果为:

49//是字符1对应的ASCII值
10//enter键对应的ASCII值,第二个scanf函数执行了,并从缓冲区中得到了值

利用fflush函数将缓冲区中不理想的值冲掉

...
    scanf("%c", &c);  
    printf("%d\n", c);  
      fflush(stdin); // 冲掉缓冲区中的无用值  
    scanf("%c", &c);  
    printf("%d\n", c);  
...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值