的開始,我想打印當前時間(通過用printf)在同一個地方,但我想這樣做在無限循環如:C中的光標移動到當前行
while(1) {printf("Date and Time are %s", asctime(localtime(¤t))); }
。所以在我使用printf之前,我應該將光標向後移動到它的凝視位置。怎麼做 ?
THX提前
的開始,我想打印當前時間(通過用printf)在同一個地方,但我想這樣做在無限循環如:C中的光標移動到當前行
while(1) {printf("Date and Time are %s", asctime(localtime(¤t))); }
。所以在我使用printf之前,我應該將光標向後移動到它的凝視位置。怎麼做 ?
THX提前
也許工作在該行開始打印「\ r」。
寫\ r
while(1) {
printf("\rDate and Time are %s ", asctime(localtime(¤t)));
fflush(stdout);
}
你可以做這樣的(看很多空格\ r!):
while(1) {
printf("Date and Time are %s\r ", asctime(localtime(¤t)));
fflush(stdout);
}
對於只需將光標移動到的開始當前行,你可以打印「\ r」,這就是那個。請注意,它不會擦除舊文本,因此要小心覆蓋它或用ANSI代碼清除。
在使用ANSI/VT控制代碼的系統上,可以打印「\ 033 [1; 2H」來定位光標。它會移動光標,不會在屏幕上打印任何內容。值1和2是行和列,所以更改它們以使用不同的位置。
也有對顏色和其他事情其他代碼:http://bluesock.org/~willg/dev/ansi.html
注意到沒有這些代碼是便攜式的,他們可能無法在所有的系統工作(最明顯的是他們不默認情況下,一些微軟系統工作)。不支持的系統將在屏幕上顯示一些垃圾(代碼本身)。
是的,我試過了,它的工作原理。 – ardsrk 2010-03-05 13:22:06