我正在尝试使用printw()
打印一个长字符串,但是它只打印一些字符。就像这个功能只允许打印最大数量的字符。
这是我的代码的一部分:
...
move(3,0);
printw(result_2);
sleep(1);
...
result_2
的字符串很长,我知道它的字符串很长。
我要打印的字符串是有关txt文件的所有信息。
我尝试了其他函数,例如addstr(),但我遇到了同样的问题。有没有办法用ncurses
打印长字符串?
这是我的字符串中的内容:
user: asdasdasd
user: holaaaa
user: asdsad
user: aw22
user: 2
user: 2
user: 2
user: 2
user: 22
user: 2
user: 2
user: 2
user: asdasd
user: holaaa
user: porfa
user: si
user: suuuuuuuuuuuuuuuuuu
user: no
user: no
user: lel
user: lkajsdkjasdkjasdkjasd
谢谢!
答案 0 :(得分:0)
我认为您可能正在触及屏幕底部。除非您调用了以下命令,否则Ncurses不会滚动(或不允许终端滚动):
scrollok(stdscr, TRUE);
因此,输出可能会到达窗口的底部并停止在该位置。
您可能还想看看curses函数idlok
。
但是,这可能无法提供您真正想要的东西。 Ncurses不维护滚动缓冲区。它仅存储屏幕上实际显示的内容。如果要实现能够滚动长文本的CLI应用程序,则必须自己实现滚动逻辑,或者使用ncurses之上实现的小部件库之一(例如CDK)。 / p>