我正在尝试使用 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
谢谢!
最佳答案
我认为您可能正在点击屏幕底部。 Ncurses 不会滚动(或允许终端滚动),除非您调用:
scrollok(stdscr, TRUE);
所以输出可能到达窗口底部并停在那里。
您可能还想了解一下curses 函数idlok
。
但是,这可能无法提供您真正想要的东西。 Ncurses 不维护滚动缓冲区;它只存储屏幕上实际显示的内容。如果您想实现一个能够滚动长文本的 CLI 应用程序,您必须自己实现滚动逻辑,或者使用在 ncurses 之上实现的小部件库之一(例如 CDK )。
关于c - ncurses - printw() 不适用于长字符串 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116662/