- ベストアンサー
文字を動かしたい
コンソールで文字を上下や左右に動かすことは出来るのでしょうか? 例えばaという文字を左から右へ動かす。 出来るのでしたらどのようにすればいいのか教えて下さい。 使用しているOSはRedHatLinux7.3です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(bs) は16進数で0x08 --> \x08 (sp) は空白なので普通に半角" "を入れればいいでしょう。 printf("a"); printf("\x08"); printf(" a"); printf("\x08\x08"); printf(" a"); printf("\x08\x08\x08"); printf(" a"); ですが、この間に時間待ちのルーチンを入れないとあっという間に動いていってしまいます。 時間待ちを割り込みで作るのかctimeを引くのかはお任せします。
その他の回答 (1)
- nta
- ベストアンサー率78% (1525/1942)
CUIが中心の時代にはコンソールにコントロールコードやESCシーケンスを送り、文字を動かしていました。 printfでコントロールコードを出力してカーソルの動きを調べてください。文字を右へ動かすということは a (bs) (sp)a (bs)(bs) (sp)(sp)a (bs)(bs)(bs) (sp)(sp)(sp)a という具合に改行せずにカーソルを移動させる方法で実現します。ESC やCSIのシーケンスをうまく使えばもっと短いコードでいろいろなことができますが、コンソールの設定に依存するので試してみてから考えてください。
お礼
ありがとうございました。
補足
すみません。初心者でよく分からないのですがprintfを使って printf("a"); printf("(bs)"); printf("(sp)a"); printf("(bs)(bs)"); printf("(sp)(sp)a"); printf("(bs)(bs)(bs)"); printf("(sp)(sp)(sp)a"); と、すればよいのですか?
お礼
詳しい説明ありがとうございました。