#include #include #include #include #include #include #include void sig_handler(int sig) { (void)sig; endwin(); exit(0); } int main(void) { signal(SIGINT, sig_handler); signal(SIGTERM, sig_handler); struct winsize ws; if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) < 0) return 1; initscr(); noecho(); curs_set(0); timeout(0); size_t middle = ws.ws_row / 2; size_t args = 0; while (1) { if (args > ws.ws_col) { refresh(); clear(); args = 0; } int val1; read(STDIN_FILENO, &val1, sizeof(val1)); int k = val1 * (middle - 5) / INT_MAX; mvprintw(middle + k, args, "@"); args++; } }