4

/キャラクター、 、|を交互に表示するアニメーションを表示したい\

端末の同じセルに常に書き込むにはどうすればよいですか? カーソルを 1 つの位置に戻す必要があります。

4

3 に答える 3

7

chr(8)ほとんどの端末は、カーソルを後ろに移動することでバックスペース ( ) を処理します。重要なのは、バッファリングを無効にすることです。

use Time::HiRes qw( sleep );

$| = 1;  # Disable buffering on STDOUT.

my $BACKSPACE = chr(0x08);

my @seq = qw( | / - \ );
for (;;) {
   print $seq[0];
   push @seq, shift @seq;
   sleep 0.200;
   print $BACKSPACE;
}

print "$BACKSPACE $BACKSPACE";
于 2012-07-12T20:38:19.753 に答える
1

perl でどのように出力するかはわかりませんが、これは通常、バックスペース文字 \b (ASCII コード 8) を出力することによって実現されます。たとえば、C++ では、これは char(8) を出力することによって行われます。

于 2012-07-12T20:26:55.100 に答える