fflush(stdin)与fflush(stdout)

fflush(stdin)与fflush(stdout)fflush stdin 与 fflush stdout

参见原文:fflush(stdin)与fflush(stdout) – 码到城攻fflush(stdin)与fflush(stdout)fflush(stdin)与fflush(stdout)https://www.codecomeon.com/posts/92/

1.fflush(stdin):

作用:清理标准输入流,把多余的未被保存的数据丢掉。。

如:

int main() { int num; char str[10]; cin>>num; cout< 
  
    >str; cout< 
    
  

从stdin获得一个整数存入num,接着立马打印出来;从stdin获得一个字符串存入str,也立马打印出来。但是下面这种可能需要特别考虑:在首行输入了两个整数,在cin>>num之

后,stdin缓冲还有一个整数没被读取。接下来,不等输入字符串,就直接把上面多出来的数字存入到str中去并打印。某种程度上这是操作不规范造成的,但是程序应该要有健壮

性,程序员应该提前预防这种不规范的操作。可以在程序界面上提示“请输入1个整数”,甚至有时候不厌其烦的强调和警告也必要。当然,本例为求简单,并不在UI友好方面做文

章。这时,可以在cin>>str语句前插入fflush(stdin),如此一来就可以清空标准输入缓冲里多余的数据。

2.fflush(stdout):

对标准输出流的清理,但是它并不是把数据丢掉,而是及时地打印数据到屏幕上。标准输出是以行为单位进行的,也即碰到\n才打印数据到屏幕。这就可能造成延时,但是Windows

平台上,似乎并看不出差别来。也即MSFT已经将stdout的输出改成及时生效了。

fflush函数被广泛使用在多线程、网络编程的消息处理中。

fflush(stdout):清空输出缓冲区,并把缓冲区内容输出。

赐教!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204109.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:59
下一篇 2026年3月19日 下午8:59


相关推荐

  • TransactionScope TransactionAbortedException

    TransactionScope TransactionAbortedException今天在调试代码的时候遇到一个这样的错误:System.Transactions.TransactionAbortedExceptionwascaughtHResult=-2146233087Message=Thetransactionhasaborted.Source=System.Transactions查了一下原因,主要是由于嵌套事务中,底层事务没有关闭,然…

    2022年7月19日
    19
  • 非常实用 Claude Code 必知设置技巧

    非常实用 Claude Code 必知设置技巧

    2026年3月15日
    3
  • 大数据Hive(六):Hive的表生成函数

    大数据Hive(六):Hive的表生成函数解释 用于和 split explode 等 UDTF 一起使用 它能够将一列数据拆成多行数据 在此基础上可以对拆分后的数据进行聚合 explode MAP map 中每个 key value 对 生成一行 key 为一列 value 为一列 explode col 将 hive 一列中复杂的 array 或者 map 结构拆分成多行 reflect 函数可以支持在 sql 中调用 java 中的自带函数 explode ARRAY 数组的每个元素生成一行

    2026年3月19日
    1
  • Java.Utils:精确运算工具类

    Java.Utils:精确运算工具类packagecom.boob.common.utils;importjava.math.BigDecimal;/***@description:精确运算工具类*@author:boob*@since:2020/2/9*/publicclassMathUtils{publicMathUtils(){}/**…

    2022年7月16日
    20
  • IDEA打包jar包及运行jar包命令

    IDEA打包jar包及运行jar包命令一 什么是 jar 包 jar 包 文件全称 JavaArchiveF Java 档案文件 用于将类文件打包 方便移植使用 文件格式与常见的 ZIP 压缩文件类似 可用常见解压软件打开 文件默认包含一个名为 META INF MANIFEST MF 的清单文件 由系统在生成 JAR 文件时自动创建 提示 jar 包主要是对 class 文件进行打包 而 java 编译生成的 class 文件是平台无关的 这就意味着 jar 包是跨平台的 所以不必关心涉及具体平台的问题 二 为什么要打 jar

    2026年3月18日
    3
  • eclipse的svn切换账号_eclipse将项目和svn关联

    eclipse的svn切换账号_eclipse将项目和svn关联百度搜了下全都是不知道哪年的一篇博客被疯狂转载,删除缓存文件的。但是根本不顶用。直接上我的解决方案吧(来自stackoverflow)。

    2022年10月14日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号