prev up next   top/contents search

comp.lang.c FAQ 列表· 第 19.3 题

我如何显示一个可以原地更新的完成百分比指示器,或者显示那种“旋转指挥棒”的进度指示器?


至少,这些简单的事情你可以相当方便地实现。打印字符'\r'通常会让你回车而不换行,这样你就可以覆盖当前行。字符'\b'是退格符,通常会将光标向左移动一个位置。

使用这些字符,你可以打印一个完成百分比指示器

	for(i = 0; i < lotsa; i++) {
		printf("\r%3d%%", (int)(100L * i / lotsa));
		fflush(stdout);
		do_timeconsuming_work();
	}
	printf("\ndone.\n");
或者一个指挥棒
	printf("working: ");
	for(i = 0; i < lotsa; i++) {
		printf("%c\b", "|/-\\"[i%4]);
		fflush(stdout);
		do_timeconsuming_work();
	}
	printf("done.\n");

另请参见问题 12.4

参考:ISO 第 5.2.2 节


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管