C言語で既に表示された内容を一括して消去する方法
C 言語では、出力した内容を一括でクリアするには以下を行う必要があります。
- エスケープ文字「\r」でカーソルを先頭に移動し、出力済みの文字を上書き表示する。例:
#include <stdio.h>
int main() {
printf("Hello World!");
fflush(stdout); // 刷新输出缓冲区
printf("\r"); // 将光标移动到行首
printf(" "); // 覆盖已输出的内容
fflush(stdout); // 刷新输出缓冲区
return 0;
}
- ANSIエスケープシーケンスを使用:ANSIエスケープシーケンスを使用すると、画面の内容を消去できます。例を以下に示します。
#include <stdio.h>
int main() {
printf("Hello World!");
fflush(stdout); // 刷新输出缓冲区
printf("\033[2J"); // 清屏
printf("\033[H"); // 将光标移动到左上角
return 0;
}
ANSIエスケープシーケンスによる画面消去は一部の端末では機能しない可能性があります。