linux - 如何删除控制台应用程序 (Linux) 中的打印字符?

标签 linux console character erase

我正在创建一个需要进度条的小型控制台应用程序。像...

Conversion: 175/348 Seconds   |==========          |  50%

我的问题是,如何清除已打印到控制台的字符?当我达到第 51 个百分比时,我必须从控制台中删除这一行并插入一个新行。在我当前的解决方案中,这就是发生的事情......

Conversion: 175/348 Seconds   |==========          |  50%
Conversion: 179/348 Seconds   |==========          |  52%
Conversion: 183/348 Seconds   |==========          |  54%
Conversion: 187/348 Seconds   |===========         |  56%

我使用的代码是...

print "Conversion: $converted_seconds/$total_time Seconds   $progress_bar  $converted_percentage%\n";

我在 Linux 中使用 PHP 执行此操作(只有我会使用该应用程序 - 所以请原谅语言选择)。因此,该解决方案应该可以在 Linux 平台上运行 - 但如果您有一个跨平台的解决方案,那将是更好的选择。

最佳答案

我认为您无需为语言选择道歉。 PHP 是一种用于控制台应用程序的出色语言。

试试这个:

<?php
for( $i=0;$i<10;$i++){
  print "$i \r";
  sleep(1);
}
?>

“\r”将用新文本覆盖该行。要换行,您可以使用“\n”,但我猜您已经知道了。

希望对您有所帮助!我知道这适用于 Linux,但我不知道它是否适用于 Windows 或其他操作系统。

关于linux - 如何删除控制台应用程序 (Linux) 中的打印字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/430713/

相关文章:

c - 获取和箭头代码

java - Java 中的字符类

c++ - 在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息

c++ - linux下Qt,如何检测一个进程是否已经运行?

linux - 如何在两个不同帐户之间设置无密码身份验证

ruby - 从 Ruby 控制台测试 Ruby on Rails OAuth API

windows - 如何获取和打印环境变量的值?

PHP:file_exists 和clearcachestat 给出错误的结果,直到服务器重新启动

jakarta-ee - Java EE 应用程序中的 `rails console`

string - 生成一串随机字符 cocoa ?