#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define TAMANHO_BUFFER 256
#define TAMANHO_BARRA 60
void
barra_progresso(int progresso, char adorno);
int
extrai_progresso(int valor_atual, int valor_total);
void
barra_comum(int tamanho_barra, char adorno, char meio);
void
pausa_msg(char *msg);
int main(void)
{
int contador;
for (contador = 0; contador < 400; contador++) {
barra_progresso(extrai_progresso(contador, 400), '>');
usleep(10000);
}
return(0);
}
void
barra_progresso(int progresso, char adorno)
{
int progresso_atua = (progresso*TAMANHO_BARRA)/100;
int progresso_falta = TAMANHO_BARRA-progresso_atua;
int contador;
printf("\r[");
for (contador = 0; contador < progresso_atua; contador++) {
printf("%c", adorno);
}
for (contador = 0; contador < progresso_falta; contador++) {
printf(" ");
}
printf("]-%i%%", progresso);
fflush(stdout);
}
int
extrai_progresso(int valor_atual, int valor_total)
{
return(((valor_atual+1)*100)/valor_total);
}
void
barra_comum(int tamanho_barra, char adorno, char meio)
{
int contador;
putchar(adorno);
for (contador = 0; contador < tamanho_barra; contador++) {
putchar(meio);
}
printf("%c\n", adorno);
}
void
pausa_msg(char *msg)
{
char buffer[TAMANHO_BUFFER];
if (msg != NULL) {
puts(msg);
}
puts("Pressione enter para continuar...");
fgets(buffer, TAMANHO_BUFFER, stdin);
}