C удалить вывод printf

Я хотел бы создать небольшую функцию, которая должна отображать текущий статус в процентах в консоли. Функция должна показывать только текущее значение в строке. Поэтому мне нужно удалить последний вывод. Это возможно? В лучшем случае это будет что-то ANSI C, программа должна работать на linux и windows.

Я нашел несколько escape-последовательностей, например "\ 033 [J" , но это не сработало.

Править

Я пробовал это с:

void PrintProcessBar(int i, int n) {
    float ratio = i / (float)n;    
    printf("%.3d\b\b", (int)(ratio * 100));
    fflush(stdout);
}

Но он просто выводит много нулей ... Что пошло не так? Если я использую три \ b , я ничего не получу.

Решение

float ratio = (i / (float)n) * 100;
printf("\b\b\b\b");
fflush(stdout);
printf("%.3d%c", (int)ratio, 37);        
fflush(stdout);

i = текущая позиция. n = максимальное количество пробегов.

Я использую 4 \ b , потому что при первом вызове функции она удаляет 4 пробела.

Привет.

6
задан Andre Hofmeister 5 March 2014 в 12:41
поделиться