15

CMD画面をクリアしたい。いくつかのオプションを見てきました。最初は

system("cls");  

しかし、私はシステムを使用したくありません.Windowsに依存するからです。Unix版も同様です。

私が試したら

cout << string(22, '\n');

次に、次のテキスト行が画面の下部にあり、それを上部に表示したい。画面をクリアして、テキストを画面の上部に戻すにはどうすればよいですか?

したがって、私はこれを持っていると言います:

cout << string(22, '\n');
cout << "************Question 1 *******" << endl;
cout << "WHO WAS THE FIRST BLACK PRESEDENT?" << endl;
cout << "(1) Obama" << endl;
cout << "(2) Bush" << endl;
cout << "(3) Jordan" << endl;
cin >> answer >> endl;

これにより、画面がクリアされ、mymenu が画面の下部に配置されます...画面をクリアして、質問/回答を画面の上部に戻すにはどうすればよいですか?

4

4 に答える 4

8

Windows、Mac、および Linux/UNIX で動作するソリューションが必要な場合は、独自の実装を考え出す必要があります。すべてのプラットフォームで機能する単一の方法があるとは思いません。

Mac/Linux/UNIX/BSD/などでは、ncurses がこれを行う簡単な方法を提供します ( http://www.gnu.org/software/ncurses/ )。

conio.hWindows の場合は、おそらく( http://en.wikipedia.org/wiki/Conio.h ) または PDCurses ( http://pdcurses.sourceforge.net/ ) などを調べる必要があります。または、この Microsoft KB 記事 ( http://support.microsoft.com/kb/99261 ) によると、サードパーティ ライブラリなしでこれを実行できるようです。

残念ながら、これを行う標準の C/C++ 関数はありません。私が言及したさまざまな方法といくつかのプリプロセッサ ディレクティブを使用して、任意のプラットフォームでビルドおよび動作する小さな関数を作成できるはずです。

プラットフォームを検出する便利な方法がない場合は、おそらく cmake をお勧めします。

于 2013-06-27T06:30:54.063 に答える
0

UNIXで試してください

system("clear")

clrscr()一部のコンパイラがサポートしていないため、UNIX では動作しない場合があります。conio.h

于 2013-06-27T06:23:51.137 に答える