作者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