Me gustaría crear una función pequeña, que debe mostrar el estado actual en porcentaje en la consola. La función solo debe mostrar el valor actual en la línea. Así que tengo que eliminar la última salida. ¿Es eso posible? El mejor caso sería algo de ANSI C, el programa debería funcionar en Linux y Windows.C eliminar la salida de impresión
He encontrado algunas secuencias de escape como "\033[J"
, pero la dosis no funciona.
Editar
Bueno he probado con:
void PrintProcessBar(int i, int n) {
float ratio = i/(float)n;
printf("%.3d\b\b", (int)(ratio * 100));
fflush(stdout);
}
Pero simplemente imprimir un montón de ceros ... ¿Qué salió mal? Si uso tres \b
, no recibo nada.
Solución
float ratio = (i/(float)n) * 100;
printf("\b\b\b\b");
fflush(stdout);
printf("%.3d%c", (int)ratio, 37);
fflush(stdout);
i = posición actual. n = max runs.
Uso 4 \b
porque, en la primera llamada de la función eliminará 4 espacios.
Greetz.
Las respuestas deben mantenerse separadas de las preguntas. Si desea responder su propia pregunta, puede hacerlo haciendo clic en el botón [Responder su pregunta] en la parte inferior de esta página. – brandaemon