(8.1.1) これは、C言語ではなく、端末の話である。
(8.1.2) ここの端末は、よその多くの端末と同じく、 「\033[」で始まる特別な文字列を画面に出力することで、 文字に色をつけたり、出力位置を変えたりすることができる。
(8.1.3) 「\033[自然数m」で文字の色などが変わる。 「\033[m」で普通に戻る。
#include <stdio.h>
main() {
int i;
for (i = 0; i < 256; i++) {
printf("\033[%dm [%03d] \033[m " , i, i);
if (i % 16 == 15) {
printf("\n");
}
}
}
(8.1.4) printf("\033[2J"); で画面全体を消去。 printf("\033[10;20H"); で次の出力位置を 10 行 20 桁めに変更。 printf("\033[2K"); で行末まで削除。
(8.1.5) ランダムな位置に、ランダムな色で「#」を書くプログラム。
#include <stdio.h>
#include <stdlib.h>
#define HEIGHT 40
#define WIDTH 80
main() {
int i;
for (i = 0; i < 10000; i++) {
printf("\033[%d;%dH", rand()%HEIGHT+1, rand()%WIDTH+1);
printf("\033[%dm", rand()%256);
printf("#");
}
printf("\033[m");
}