gpt4 book ai didi

c - 在c中重新编码unix命令ls(格式化输出)

转载 作者:行者123 更新时间:2023-11-30 19:38:39 25 4
gpt4 key购买 nike

我正在重新编码 Unix 命令 ls,im 使用多个系统函数,包括但不限于 、 、 函数等。我拥有所需的所有信息,并且已经取得了长足的进步。但是,我需要格式化输出的帮助。

当您运行命令 ls -l 并且输出被格式化时,无论所述文件名的长度如何,所有列的大小都是正确的。

我想知道如何以与 ls 相同的方式格式化我的输出,关于列(只是一般想法而不是实际代码)。我该怎么做?

最佳答案

有各种非打印转义字符可以执行诸如将光标移动到特定位置、更改字体和背景颜色等任务。您可以使用它们将光标移动到计算的位置以实现整齐的列基于 - 的格式,如 ls 命令的输出。您需要考虑的角色如下:

  • \033[l;cH:将光标移动到行l和列c
  • \033[nA:将光标向上移动n行。
  • \033[bB:将光标向下移动n行。
  • \033[nC:将光标向前移动 n 个字符。
  • \033[nD:将光标向后移动 n 个字符。
  • \033[2J:清屏并将光标移动到第 0 行第 0 列
  • \033[K :不移动光标,清除从当前光标位置开始的行。
  • \033[s :存储当前光标位置
  • \033[u :将光标移回之前存储的位置。

例如,以下语句将光标移动到屏幕的左上角并清除第一行,然后将光标返回到其原始位置。

printf("\033[s\033[0;0H\033[K\033[u");

关于c - 在c中重新编码unix命令ls(格式化输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com