printf() 函数不加 \n 无法及时输出

2023-11-09

for (;;)
{
    printf("worker进程休息1秒");
    sleep(1);
}

printf() 函数末尾不加 \n 就无法及时地将信息显示到屏幕上,这是因为行缓存(Windows上一般没有,类Unix上才有)。

行缓存:需要输出的数据不直接显示到终端,而是首先缓存到某个地方,当遇到行刷新标志或者该缓存已满的情况下,才会把缓存的数据显示到终端设备。

解决方法一:

ANSI C 中定义 \n 是行刷新标志,printf() 函数没有带 \n 是不会自动刷新输出流的,直至行缓存被填满才显示到屏幕上,所以用 printf() 的时候,注意末尾要用 \n。

for (;;)
{
    printf("worker进程休息1秒\n");
    sleep(1);
}

解决方法二:

for (;;)
{
    printf("worker进程休息1秒");
    fflush(stdout); // 刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上,则printf()里的东西会立即输出    
    sleep(1);
}

解决方法三:

setvbuf(stdout, NULL, _IONBF, 0); // 这个函数直接将printf()缓冲区禁止,printf就直接输出了
for (;;)
{
    printf("worker进程休息1秒");
    sleep(1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

printf() 函数不加 \n 无法及时输出 的相关文章

  • MinGW GCC:“未知转换类型字符'h'”(snprintf)

    好的 我在 Windows 7 上使用 MinGW GCC 4 6 2 编译 C 文件时遇到了一个奇怪的问题 该文件包含以下 C 代码 include
  • 对 getchar 和 scanf 感到困惑

    我真的很困惑的用法getchar and scanf 这两者有什么区别 我知道scanf 和家人 从用户 或文件 处获取一个字符一个字符并将其保存到一个变量中 但它是立即执行还是在按下某些内容后执行此操作 Enter 我不太理解这段代码 我
  • 关于 printf 语句的混淆

    所以我正在运行这段代码 include
  • 是否有一个“空”printf 代码不打印任何内容,用于跳过参数?

    如果我想要一个程序有多种文本输出格式 我可以这样做 const char fmtDefault u x s 2f each n const char fmtMultiLine Qty 3u nItem s nPrice per item 2
  • printf 转换 long long 时出现问题

    我一直在研究一个项目欧拉问题 该问题本质上迫使您使用具有大存储空间的数据类型 include
  • 将可变参数传递给 printf [重复]

    这个问题在这里已经有答案了 我想要一个辅助功能log它主要执行以下操作 log file array has d elements n 10 writes 2014 02 03 16 33 00 array has 10 elements
  • JavaScript 相当于 printf/String.Format

    我正在寻找一个与 C PHP 相当的 JavaScriptprintf 或者对于 C Java 程序员来说 String Format IFormatProvider对于 NET 我的基本要求是目前数字的千位分隔符格式 但处理大量组合 包括
  • 如何使用 sprintf 附加字符串?

    我面临着一个严重的问题sprintf 假设我的代码片段是 sprintf Buffer Hello World sprintf Buffer Good Morning sprintf Buffer Good Afternoon 几百次冲刺
  • 向 printf 传递太多参数

    任何已经工作了一周以上的 C 程序员都遇到过因调用而导致的崩溃printf格式说明符多于实际参数 例如 printf Gonna s and s s crash burn 然而 当你通过时 是否会发生类似的糟糕事情 too manyprin
  • printf 似乎忽略了字符串精度

    所以 我有点难受 根据man 3 printf在我的系统上 字符串格式 5s 应使用指定的精度来限制从给定字符串参数打印的字符数 man 3 printf PRINTF 3 BSD Library Functions Manual PRIN
  • C 编程:正向变量参数列表

    我正在尝试编写一个函数 它接受可变数量的参数 如 printf 执行一些操作 然后将变量列表传递给 printf 我不知道如何做到这一点 因为它似乎必须将它们推入堆栈 大约是这样的 http pastie org 694844 http p
  • 字符串格式化表达式 (Python)

    字符串格式化表达式 This is d s example 1 nice 字符串格式化方法调用 This is 0 1 example format 1 nice 我个人更喜欢方法调用 第二个示例 以提高可读性 但由于它是新的 因此随着时间
  • fprintf 调试断言失败

    我有一个程序 如果我手动启动它 它可以正确运行 但是 如果我尝试添加注册表项以在启动过程中自动启动它 则会收到以下错误 Debug assertion failed str null fprintf c line 55 我尝试在发生任何事情
  • printf() 格式化十六进制

    为什么当将十六进制数字打印为带前导零的 8 位数字时 08X not显示相同的结果0x 08X 当我尝试使用前者时 08格式化标志已被删除 并且它不适用于仅8 The 部分给你一个0x在输出字符串中 这0和x计算您在列表中列出的 8 个字符
  • 可以使用多个 _Generic 创建字符串文字吗?

    有没有办法使用 Generic在同一表达式中多次使用关键字来创建单个字符串文字 我正在寻找的是一种方法 例如生成要传递给的单个格式字符串printf 所有转换说明符都适应正确的类型 写作时this https stackoverflow c
  • %*.*d 在 printf() 中如何工作?

    include
  • 如何使用 fprintf 并写入管道?

    我创建了一个管道 并使用 dup2 将流 1 和 2 stdout 和 stderr 覆盖到这些管道中 现在我希望使用 fprintf 写入流 1 或 2 但我的程序似乎没有在管道的另一端接收到任何内容 我尝试过使用 printf 但我不确
  • 当 MSB 位等于 0 时如何以十六进制格式打印它们

    我需要使用打印变量HEX格式 问题是当我的变量很小时 MSB 等于 0 因此不会打印它们 ex uint16 t var 10 0x000A h gt 我需要打印 000A 但无论我做什么它总是打印 A 我怎样才能让它发挥作用 您可以添加前
  • 在 printf 参数中提升类型是否危险?

    我的问题源于尝试为多个位深度平台 例如 32 64 构建时尝试使用 printf 来记录内容 一个不断出现的问题是试图在多种架构上打印整数 在 32 位上它会是这样的 printf my int d n myInt 但在 64 位上 必须更
  • printf 参数不足

    我的问题是关于缺少参数的 printf 之后的行为 printf s blah blah d int integer was given as argument and not int written 我已经知道 如果格式参数不足 则行为是

随机推荐

  • CPU是如何工作的

    晶体管到门电路 二极管的工作 相信大家都知道二极管的工作特性 那如何使用二极管去构建一个门电路呢 二极管的与门 上拉电阻 只有AB同时为高电平 输出为高电平 二极管的或门 下拉电阻 只要AB任一一个为高电平 输出为高电平 MOS管的工作 在
  • 初学React,制作案例页面1

    通过node搭建开发环境 先下载node并安装 然后在cmd中用npm命令下载react脚手架 我选择了react bootstrap作为UI框架 所以也在cmd中下载react bootstrap资源包 npm install g cre
  • C++ - 成员函数(member function)模板(template) 详解 及 代码

    成员函数 member function 模板 template 详解 及 代码 本文地址 http blog csdn net caroline wendy article details 16918085 成员模板 member tem
  • Flink Table API 与 Flink SQL 实现Kafka To Kafka 版本1.12

    Table API版本 0 前提 1 创建流和表执行环境 2 连接Source并创建Table 3 筛选Table对象中的数据 4 连接Sink并创建临时表 5 将Table对象写入临时表 测试 杠精打住 SQL 版本 最近有铁汁问我 一闪
  • leetcode 第 1025 题:除数博弈(C++)

    1025 除数博弈 力扣 LeetCode 第一反应是动态规划 f i 是否为true取决于在 0 i 之间能否找到一个因数j使得f i j 为false 也就是能否找到一个因数使得鲍勃必败 class Solution public bo
  • poj 3074 Sudoku

    Time Limit 1000MS Memory Limit 65536K Total Submissions 7613 Accepted 2696 Description In the game of Sudoku you are giv
  • ST官方库函数之GPIO复位函数void GPIO_DeInit(GPIO_TypeDef* GPIOx) 的理解

    通常我们需要对ST单片机的整个IO进行复位操作 这是我们可以用到复位函数void GPIO DeInit GPIO TypeDef GPIOx 先来看一下这个函数的定义 void GPIO DeInit GPIO TypeDef GPIOx
  • JUST技术:时空轨迹挖掘助力物流小哥减负增效

    电商的发展需要依赖高效而可靠的物流服务 如何通过大数据和人工智能技术提升物流小哥的配送效率是我们一直在深入研究的问题 在刚刚结束的数据挖掘顶会KDD2020中 这篇 Doing in One Go Delivery Time Inferen
  • 31岁拿了阿里P6的offer,还有必要去吗?

    前几天看到一个非常现实且扎心的提问 31岁拿了阿里P6的offer 要去吗 首先给大家简单普及一下 估计很多小伙伴对阿里P6的概念比较模糊 甚至不少人觉得阿里P几啊什么的 就都很牛b 其实不然 P级只是阿里现行的职级划分体系 校招生进入阿里
  • sbt入门

    sbt入门 sbt 介绍 sbt 下载 sbt 安装 sbt 入门 helloworld sbt 目录结构 sbt 命令 总结 sbt 介绍 sbt是什么 sbt到底是什么 在网上找找 似乎找不到一个非常准确 而且大家都认可的定义 我自己对
  • FASTJSON和JACKSON基本使用

    Json是一种轻量级的数据交换格式 采用一种 键 值 对的文本格式来存储和表示数据 在系统交换数据过程中常常被使用 是一种理想的数据交换语言 在使用Java做Web开发时 不可避免的会遇到Json的使用 JSON形式与语法 JSON对象 我
  • linux使用xe命令管理远程xenserver机器

    1 linux下安装xe工具 xenserver6 2的dom0是32位centos5系统 xenserver6 5是64位centos系统 xe工具都是以rpm包形式提供 在ubuntu下安装时 先要用alien转换rpm包为deb包 注
  • group by的使用场景

    group by的使用场景 自我理解 一般配合sum使用 用来分组统计总 量 面试的时候最好说我们当时用的group 加sum查询每个sku的销量 group by 分组 查询 就是把记录集中的记录按一定规则进行 分组统计 假设一个学生名单
  • Android 关于inflate

    通俗的说 inflate就相当于将一个xml中定义的布局找出来 因为在一个Activity里如果直接用findViewById 的话 对应的是setConentView 的那个layout里的组件 因此如果你的Activity里如果用到别的
  • AWK入门到精通系列——awk快速入门

    简介 AWK是一个优良的文本处理工具 Linux及Unix环境中现有的功能最强大的数据处理引擎之一 这种编程及数据操作语言 其名称得自于它的创始人阿尔佛雷德 艾侯 彼得 温伯格和布莱恩 柯林汉姓氏的首个字母 的最大功能取决于一个人所拥有的知
  • nrm下载报错(C:\Users\16500\AppData\Roaming\npm\node_modules\nrm\cli.js:9const open = require(‘open‘)问题解决

    问题报错 建议大家下载nrm的时候尽量在node js 16版本之上 不然会造成很多报错问题无法解决 node 16版本下载地址 node js 16 问题原因是应该使用 open 的 CommonJs规范的包 现在 open v9 0 0
  • 华为云计算01——虚拟化技术

    云计算概述 云计算不是一个新的技术 它是通过虚拟化技术 将物理硬件资源虚拟化成为多个能独立运行且相同的 能为多个虚拟机提供服务 最开始云计算由亚马逊提出 并完成了云计算的初步架构 但是 亚马逊云是私有的 未公布其代码与实现原理 而后来开源社
  • Flutter drawer 侧滑实现二(通过点击现实显示侧滑栏)

    1 首先在需要使用的页面加入下方代码 GlobalKey
  • FreeRTOS(1):任务

    目录 一 FreeRTOS 介绍 什么是 FreeRTOS 为什么选择 FreeRTOS FreeRTOS 资料与源码下载 FreeRTOS 实现多任务的原理 二 移植 FreeRTOS 到STM32 手动移植 使用CubeMX快速移植 快
  • printf() 函数不加 \n 无法及时输出

    for printf worker进程休息1秒 sleep 1 printf 函数末尾不加 n 就无法及时地将信息显示到屏幕上 这是因为行缓存 Windows上一般没有 类Unix上才有 行缓存 需要输出的数据不直接显示到终端 而是首先缓存