作者dbzgtgwduo (迪欧麦斯威尔)
看板C_and_CPP
标题Re: [问题] 想问一个问题
时间Mon Feb 9 15:44:43 2009
※ 引述《concealment (笨小孩)》之铭言:
: ※ 引述《Tocarossa (聆听圣灵微小的声音)》之铭言:
: : C/C++有没有相关的语法或是可以类似在执行的时候可以改变已经被printf值的方法??
: : 比如说:
: : ======================================
: : 倒数计时:10
: : ^^在同一行10变成9 再变成8
: : ======================================
: : 类似这样的,我手边没有书,不知道板上的各位大大能不能提示一下
: : 谢谢
: 我写了一个程式:
: 应该可以用,请你试试吧! :)
==============================================
#include <stdio.h>
int main()
{
int i, j;
char bk[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, '\0'};
for(i=0;i<100;i++)
{
for(j=0;j<(INT_MAX>>5);j++);
printf("%s倒数计时:%d", bk, i);
}
return 0;
}
==============================================
: 这样可以达到你想要的结果耶!
: :)
: Good Luck!!
我想请问一下这一行:「printf("%s倒数计时:%d", bk, i);」
因为没认真学过 C 所以这一行我看不太懂为什麽要这样写?
外层的 for 是记数用的,内层是 busy waiting
为什麽 printf 写成这样就不会换行,而是从头开始 print?
谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.114.43
2F:→ ianfang:ascii code 8是back space 也就是你键盘上的<-键 02/09 15:48
3F:→ ianfang:每次输出前都删去前面13格字元~所以就从头开始啦 02/09 15:49
4F:→ dbzgtgwduo:囧,没有想到,用 C++ 都直接 \b。 02/09 15:50
5F:→ ianfang:这招我以前也常用类似的方法玩console的百分比 02/09 15:50
6F:→ ianfang:ascii 8就是\b这个字元阿~是同义的~ 02/09 15:51
7F:→ ianfang:应该是说\b的code就是8 02/09 15:52
8F:→ dbzgtgwduo:常记的就只有 CR : 13 LF : 10 没有去记 8 是什麽。 02/09 15:54
9F:推 ianfang:我也没记...我是看到猜大概是backspace~才去查的 02/09 15:56
10F:→ ianfang:ascii code表网路上很多~ 02/09 15:57