17

知りたい: UNIX ベースのシステムで画面をきれいにする方法は? インターネットで検索しましたが、Windows でそれを行う方法を見つけました: system("CLS") 画面を完全にクリーンアップする必要はありませんが、次のような「新しいページ」を開きたいNANO および VI エディターで。ありがとう

4

10 に答える 10

23

たぶん、エスケープコードを利用できます

#include <stdio.h>

#define clear() printf("\033[H\033[J")

int main(void)
{
    clear();
    return 0;
}

ただし、この方法はすべての端末に対応しているわけではないことに注意してください

于 2013-06-24T09:00:40.900 に答える
15

クリアスクリーンにtermcapを使用する次のコードを使用できます。(ライブラリとのリンクを忘れないでください)

#include <stdio.h>
#include <stdlib.h>
#include <termcap.h>

void clear_screen()
{
char buf[1024];
char *str;

tgetent(buf, getenv("TERM"));
str = tgetstr("cl", NULL);
fputs(str, stdout);
} 
于 2013-06-24T09:10:43.793 に答える
6
#include <stdlib.h>
int main(void)
{
    system("clear");
}
于 2013-06-24T09:16:24.640 に答える
3

通常、画面をクリアするだけではなく、ターミナル対応アプリケーションを作成します。

ncursesライブラリを使用し、 NCURSES プログラミング HowToを読む必要があります。

( David RFが答えたように、おそらくいくつかのANSIエスケープコードを使用できますが、それは良い考えではないと思います)

于 2013-06-24T08:59:54.183 に答える
3

これは、CSI シーケンスを使用して実現できます。

#include <stdio.h>
int main()
{
    printf("\x1b[H\x1b[J");
}

とは\x1b[H?

実際には と同じで\x1b[1;1;H、カーソルを行 1 列 1 に移動することを意味します。

\x1b[Jakaとはどういう意味\x1b[0;Jですか?

n が 0 または欠落している場合、カーソルから画面の終わりまでクリアされます。

ソース: https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_sequences

于 2018-05-23T07:46:57.923 に答える
1

termcaps を使用して画面をクリアするには、次を使用します。

write(1, tgetstr("cl", 0), strlen(tgetstr("cl", 0)));
于 2014-09-09T09:00:17.263 に答える