Как прокрутить сообщение через терминал?
Я пытаюсь написать программу, которая действует как шатер, который использует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
}
}