【问题标题】:low level printing in C [duplicate]C中的低级打印[重复]
【发布时间】:2019-07-07 08:01:02
【问题描述】:

我知道如何在 C 中打印字符串或字符,但我想知道如何修改已在屏幕上打印的字符串(例如当您安装一些软件包并 # 填充 |####- --->| 50%),不使用系统调用以外的任何其他函数。

【问题讨论】:

  • 在打印机或屏幕上“打印”?
  • 在屏幕上(在外壳中)。
  • 一旦使用标准 C 将数据发送到标准输出,您就无法移动“光标”,而无需使用一些 API 调用或不了解控制台的细节。但是,可以使用回车符 (\r) 来呈现进度条。
  • 在 unix 上,您可能希望使用像 curses/ncurses 这样的专门库,它通过所有 termcap 数据库知识为您管理终端功能。在其他系统上,其他库...

标签: c printing low-level


【解决方案1】:

可以使用回车:

#include <stdio.h>
#include <unistd.h>

int main()
{
    printf("%s", "Hello, ");
    fflush(stdout);
    sleep(1);
    printf("\r%s\n", "World!");
    return 0;
}

【讨论】:

  • Hello, 字符串永远不会这样显示
  • 我修改它添加了fflush(stdout)。它还会在显示 World! 之前休眠。
  • 不错!我不知道你能做到这一点:)
  • 这是我第一次知道fflush,谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
相关资源
最近更新 更多