C言語,端末(ターミナル)に上書きで出力する

スポンサーリンク

鍛錬 845

C言語,端末(ターミナル)に上書きで出力する

進捗状況を端末(ターミナル)に上書きしながら表示するプログラムです。

printf()関数で標準出力に出力後、putchar()関数で 0x0d (CR, 復帰)を出力します。

スポンサーリンク

プログラム

以下は、進捗状況を上書きで表示するプログラム、test_overwrite.c です。

今回は、0 ~ 20 の範囲で進捗状況を表示しています。

// include
#include <stdio.h>

// main
int main(void)
{
	int i, n;
	
	// 処理状況を表示する
	for (i = 0; i < 20; i++) {
		printf("処理状況 --> %3d / 20", i);
		putchar(0x0d);
		fflush(stdout);
		
		// 適当な処理
		for (n = 0; n < 123456789; n++) {
			;
		}
	}
	
	// 端末に以前出力された内容をクリア
	for (i = 0; i < 30; i++) {
		putchar(0x20);
	}
	putchar(0x0d);
	
	printf("終了しました\n");
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム test_overwrite.c を実行しています。

john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ gcc -Wall -Wextra test_overwrite.c -o test_overwrite
john@ubuntu:/var/tmp/test$ ./test_overwrite

 
以下は、実際に実行している様子です。

進捗状況を表示

タイトルとURLをコピーしました