Показать индикатор прогресса - PullRequest
1 голос
/ 06 июля 2011

Я использую C в Linux.Как мне показать индикатор прогресса, который сообщит мне, когда программа (или части программы) будет завершена?Например, это может быть что-то вроде «Поиск ... 67%», и процент будет продолжать расти до тех пор, пока не закончится поиск.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 06 июля 2011

Записать символ '\r' в стандартный вывод, чтобы вернуть курсор в начало строки, чтобы вы могли перезаписать строку. Например:

for (i=0; i<100; i++) {
    printf("\rSearching...%d%%", i);
    fflush(stdout);
    sleep(1);
}
2 голосов
/ 06 июля 2011

Я верю, если вы сделаете что-то вроде:

while (perc < 100) {
    printf("Searching... %d%%\r", perc); 
    fflush(stdout);
    //do work
}

fflush() необходимо, чтобы избежать буферизации строки. Обратите внимание, что я использую \r, а не \n.

...