• 締切済み

コマンドライン上で確定した文字を表示させない方法(Linux)

コマンドライン上で自分が入力、確定した文字を 表示させない(残さない)ようにできる関数やコマンドはありませんか? 具体的には fgetsで入力→printfで表示 という流れで fgetsで入力した文字がエンターキーで確定した瞬間に消えて その行が後に残らないようにしたいのですが…。 -echoとは違い、入力時(エンターキーでの確定前)には 通常通り表示させたいです。 どなたかご回答お願い致します。

みんなの回答

  • aid-u
  • ベストアンサー率75% (22/29)
回答No.2

Linuxでターミナルの制御を行うには、ncursesというライブラリを使用します。 ターミナル上で利用できるエディタなどで使用されるライブラリです。 #1で言われているエスケープシーケンスを扱います。 ncursesを使用する場合は、printf/fgetsのように単独で使用できません。 初期化処理などの一定の手順を取る必要があります。 詳しいことは、ncursesについて記述しているサイトを探してください。 おおよそ以下のようになるのではないかと思います。 マシン上での確認は行っていないので、誤りがあると思います。 a)initscr()で初期化 b)getsyx()で現在のカーソル位置を取得 c)getstr()で文字列を読み込み d)setsyx()でb)で取得したカーソル位置へ移動 e)clrtoeol()でカーソル位置から行末をクリア f)printw()で表示 g)endwin()で終了処理

すると、全ての回答が全文表示されます。
  • sobacya
  • ベストアンサー率11% (1/9)
回答No.1

OSに依存しますが、エスケープシーケンスでできませんか? printf("\x1b[2J"); とか printf("\x1b[K"); など。 できなかったらごめんなさい。

すると、全ての回答が全文表示されます。

関連するQ&A