История изменений
Исправление beastie, (текущая версия) :
На pure C твой код выглядел бы примерно так:
#include <ncurses.h>
#include <stdio.h>
#include <unistd.h>
char *
progress(unsigned int percent)
{
static char pBar[40] = {};
char *p = pBar;
int i;
if (percent > 100)
percent = 100;
*p++ = '[';
for (i = 0; i < percent / 5; i++)
*p++ = '|';
for (; i < 20; i++)
*p++ = ' ';
*p++ = ']';
snprintf(p, sizeof(pBar) - (p - pBar), "%4i%%", percent);
return pBar;
}
int
main(int argc, char **argv)
{
char *pBar;
int i;
initscr();
for (i = 0; i <= 100; i++) {
pBar = progress(i);
mvprintw(2, 0, "%s\n", pBar);
refresh();
sleep(1);
}
endwin();
return 0;
}
Исходная версия beastie, :
На pure C твой код выглядел бы примерно так:
#include <ncurses.h>
#include <stdio.h>
#include <unistd.h>
char *
progress(unsigned int percent)
{
static char pBar[40] = {};
char *p = pBar;
int i;
if (percent > 100)
percent = 100;
*p++ = '[';
for (i = 0; i < percent / 5; i++)
*p++ = '|';
for (; i < 20; i++)
*p++ = ' ';
*p++ = ']';
*p++ = ' ';
*p++ = ' ';
snprintf(p, sizeof(pBar) - (p - pBar), "%i%%", percent);
return pBar;
}
int
main(int argc, char **argv)
{
char *pBar;
int i;
initscr();
for (i = 0; i <= 100; i++) {
pBar = progress(i);
mvprintw(2, 0, "%s\n", pBar);
refresh();
sleep(1);
}
endwin();
return 0;
}