Как прокрутить сообщение через терминал?

Я пытаюсь написать программу, которая действует как шатер, который используетcurses.h library создать дисплей с боковой прокруткой.

Что должно произойти, так это то, что мое сообщение «Hello» должно появиться для прокрутки с правой стороны терминала влево, символ за символом.

Должно появиться «привет», чтобы прокрутить терминал так:

|                                              H| // fist frame of animation

|                                             He| //2nd

|                                            Hel| //3rd
                                                  ...
|             Hello                             | // some time in the middle of animation

|Hello                                          | // finished.

Вместо того, чтобы прокручивать терминал, моя программа просто выводит сообщение «Hello» на левой стороне терминала, как будто оно закончено.

Я думал, что печать соответствующего количества пробелов, а затем соответствующее количество символов строки каждого кадра будет работать.

Что я делаю неправильно?

Ниже приведен мой код:

#include    <curses.h>
#include    <string.h> 
main()
{
    char    message[] = "Hello";
    int     max_y, max_x; // max dimensions of terminal window
    int     text_length;
    int     i,row=0,col=0,spaces=0;

    // Get text length
    text_length = strlen(message);

    // Get terminal dimensions
    getmaxyx(stdscr, max_y, max_x);

    // num of spaces needed to print
    spaces = max_x -1; 

    initscr(); // initialize curses
    clear(); // clear screen to begin

    while(1)
    {
        clear(); // clear last drawn iteration
        move(5,col);
        // print spaces as necessary
        for(i=0;i<spaces;i++)
        {
            addch(' ');
        }
        refresh();
        // print appropriate number of characters of the message            
        for(i=0;i<text_length || i<max_x; i++)
        {
            addch(message[i]);
        }
        refresh();          
        usleep(50000); // wait some time
        spaces = spaces-1; //adjust spaces need for next iteration
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос