繁体   English   中英

ncurses - printw() 不适用于长字符串 (C)

[英]ncurses - printw() doesn't work with long strings (C)

我试图用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 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM