fflush()函数

一、fflush()函数:更新缓存区
头文件:#include《stdio.h>
函数定义:int fflush(FILE *stream);
函数说明:调用fflush()会将缓冲区中的内容写到stream所指的文件中去.若stream为NULL,则会将所有打开的文件进行数据更新

二、fflush(stdin):刷新缓冲区,将缓冲区内的数据清空并丢弃
fflush(stdout):刷新缓冲区,将缓冲区内的数据输出到设备

请看如下代码:

//test1.c(运行环境:linux)
#inlcude<stdio.h>
int main()
{
    printf("hello");

    sleep(5);

    printf(" world!\n");

    return 0;
}
//先进入sleep后打印hello world!
//test2.c
#include<stdio.h>

int main()

    printf("hello");

    fflush(stdout);//将缓冲区的内容输出到设备中

    sleep(5);

    printf(" world!\n");

    return 0;
}
//先打印hello 在进入sleep 后打印world!

三、scanf和printf
我们常用的scanf和printf都是先将数据放入缓存里,等缓存满了或是程序结束再将数据处理

四、看下fflush(stdin)
如下代码:

#include<stdio.h>

int main()
{
    char a,b;
    scanf("%c",&a);

    //fflush(stdin);

    scanf("%c",&b);

    printf("%d\n",a);
    printf("%d\n",b);

    return 0;
}

若没有fflush(stdin);
从键盘输入:2+回车
则会将回车符赋给b
这里写图片描述

加上fflush(stdin)
输入:2+回车
则不会对b赋值

  • 13
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值