13
A
回答
19
你可以使用退格鍵(\b
)是這樣的:
printf("processing... |");
fflush(stdout);
// do something
printf("\b/");
fflush(stdout);
// do some more
printf("\b-");
fflush(stdout);
等你需要fflush(stdout)
因爲通常標準輸出緩衝,直到輸出一個換行符。
2
很久以前,我已經做到了。有兩種方法。
使用類似ncurses的庫來控制終端。如果你想做很多這樣的東西,這很有效。如果你在一個小點上只有一個,這顯然是矯枉過正。
打印控制字符。
首先您打印 「/」,然後0x08的(退格鍵),然後是 「 - 」,然後0x08的,那麼 「\」 ....
退格字符移動光標位置後面有一個空格,但將當前角色留在那裏直到您覆蓋它。獲得正確的時間(所以它不旋轉,快或慢),你是金。
1
由於C標準庫(http://members.aol.com/wantondeb/)沒有提供執行原始終端/控制檯輸出的功能,因此沒有真正的「標準」方式來執行此操作。
在DOS/Windows控制檯,標準的上下的方式做到這一點是conio.h
,而Unix/Linux下爲此目的而接受庫ncurses
(ncurses
基本上封裝了MBCook介紹控制字符的行爲,在終端獨立的方式)。
10
下面是一些示例代碼。在任務完成時,每隔一段時間調用一次advance_cursor()。
#include <stdio.h>
void advance_cursor() {
static int pos=0;
char cursor[4]={'/','-','\\','|'};
printf("%c\b", cursor[pos]);
fflush(stdout);
pos = (pos+1) % 4;
}
int main(int argc, char **argv) {
int i;
for (i=0; i<100; i++) {
advance_cursor();
usleep(100000);
}
printf("\n");
return 0;
}
+0
它沒有工作#include
2
您還可以使用\ r:
#include <stdio.h>
#include <unistd.h>
void
advance_spinner() {
static char bars[] = { '/', '-', '\\', '|' };
static int nbars = sizeof(bars)/sizeof(char);
static int pos = 0;
printf("%c\r", bars[pos]);
fflush(stdout);
pos = (pos + 1) % nbars;
}
int
main() {
while (1) {
advance_spinner();
usleep(300);
}
return 0;
}
相關問題
- 1. 使用unix終端運行C++程序
- 2. C程序/忠告打印在終端
- 3. C程序,沒有在終端打印
- 4. 如何使用終端運行特定的Android應用程序?
- 5. 使用標準打印機在C#中使用非標準尺寸打印PDF
- 6. CPU使用率高,移動光標應用程序C#
- 7. 如何使用Zedgraph庫在C#應用程序中更改鼠標光標?
- 8. 如何編寫使用終端作爲GUI的應用程序? (在C中)
- 9. Windows 10 UWP應用程序c#打印
- 10. 控制終端使用鼠標C++
- 11. 如何在新的C++ Mongo驅動程序中使用光標
- 12. 使用整個終端窗口的終端應用程序
- 13. 使用C#中的Crystal Report打印標籤打印機
- 14. 運行應用程序命令打開終端
- 15. 目標C - 旋轉使用輪弧度
- 16. 使用目標旋轉圖像C
- 17. SQLite - 如何在終端級別和C++應用程序中使用它?
- 18. 在C#中使用CLI應用程序的標準輸出始終爲空
- 19. 在C#Windows應用程序中使用自定義彩色光標
- 20. C程序運行Mac應用程序
- 21. 如何在Ubuntu的終端中自動運行應用程序?
- 22. 在應用程序的終端中運行命令
- 23. C#在應用程序中使用WIPMania
- 24. 在C++應用程序中使用DLL
- 25. 在C#應用程序中使用「for(;;)」?
- 26. 使用使用iphone的網絡的c/C++庫應用程序目標c
- 27. 光標不旋轉到Windows Mobile應用程序的結尾
- 28. 使用iTextSharp在C#中旋轉PDF
- 29. 在Web應用程序中運行的編譯目標C
- 30. 在C#應用程序中使用命令行程序
沒有必要使用0x08時,C標準耗材「\ B」爲退格,而這會獨立運作的字符組。 0x08假定爲ASCII。 – Chris 2008-10-13 22:59:56
@Chris Young:我在做了我的之後在其他帖子裏看到了。我沒有必要這麼做,我不記得那是什麼。我查看了一張ASCII表格以查找該號碼,但該表格沒有快捷方式。 – MBCook 2008-10-13 23:13:23