3

私はC言語を使用しています。テーブルを表示したい。を使用して通常の表を表示する方法を知っていますprintf。しかし、私は多くのレコード(数千以上)を持っているので、常に2つのものを画面に表示し、レコードの中央部分を更新し続けたいと思っています...

ここにテーブルがあるとします。

================================
No.| Name | Some Data | Comments
================================
001   xyz     234        abc
002   uvw     5862       abc
003   lmn     8993       abc
004
005
006
007
...
...
================================
Some result analysis goes here: 
================================

ここで、このテーブルに数千のエントリがあり、1秒以内にこのテーブルが更新されていると仮定します。最終的にはどうなるでしょうか?テーブルのヘッダーとフッターを次のように失います:いいえ、名前、いくつかのデータとコメント、およびフッターの結果分析。

私が欲しいのは、エントリを更新し続けることですが、テーブルのヘッダーとフッターは残しておきます。どうすればこれを実装できますか?何か案が?

4

3 に答える 3

2

私はcursesのようなTUIライブラリを見るでしょう。

Cursesは、コンソールモードで実行されているPC、ハードウェアANSI端末、TelnetまたはSSHクライアントなど、テキストのみのデバイスでGUIのような機能を促進するように設計されています。

Cursesでは、ヘッダー、フッター、およびデータを保持する領域を画面上に作成し、いくつかのキーボードキーを処理して、行のスクロールを実装できます。おそらく他のTUIライブラリにも同様の機能があります。

于 2012-05-31T16:33:44.163 に答える
1

一般的な端末を備えたUnix環境を使用している場合は、GotoXY()を使用できます。

この関数を使用すると、カーソルを一番上の行(ヘッダーの下)に移動し、一連の行を印刷してから、もう一度一番上の行に戻ってさらに印刷することができます。

印刷した行数(および収まる行数)を追跡する必要がありますが、それは比較的簡単なカウントである必要があります。

このコードは、ターミナルエスケープシーケンスを使用してカーソルの動きを制御します。

于 2012-05-31T16:30:52.027 に答える
1

Unix / Linuxシステムを使用していますか?はいの場合、おそらくncursesライブラリ(男性3)があります。キャラクターインターフェースを操作するライブラリーです。
'windows'(画面セクション)を作成し、この部分のみを更新することができます(ヘッダーとフッターを維持するため)。

于 2012-05-31T16:46:01.760 に答える