C言語で出力した文字を消去する方法

印字された文字を削除するには、C言語の標準入力出力ストリームは順序立てて処理を行うため、特別な方法を使用する必要があります。既に印字された文字を直接削除することはできません。

バックスペース操作を行う簡単な方法は、エスケープ文字\bを使用することだ。\bは、カーソルを一文字分後退させて、以前に出力した文字を上書きすることができる。

削除済みの文字を \b を用いてどのように削除するかを示す、簡略なコードサンプルを以下に示しました。

#include <stdio.h>
#include <unistd.h>
int main() {
printf("Hello, world!");
// 等待1秒,模拟删除操作
sleep(1);
printf("\b \b"); // 使用\b删除一个字符
return 0;
}

上記のコードでは、まず「Hello, world!」という文字列を表示し、\bで最後の1文字を消去しました。sleep(1)で1秒待機することで、消去効果を確認できるようにしています。そして、再び\bで最後の1文字を消去し、空白文字で上書きするように出力しています。これにより、入力された文字が消去されたかのような演出を実現しています。

注意してほしいのは、この方法では直前に印字された1文字のみが削除でき、それ以前の文字を削除することは出来ません。複数文字を削除したい場合は、\b を複数回使って順に削除するか、他の方法で文字列全体を再出力する必要があります。

bannerAds