ncurses-printw()不';t使用长字符串(C)
我试图用ncurses-printw()不';t使用长字符串(C),c,ncurses,C,Ncurses,我试图用printw()打印一个长字符串,但它只打印一些字符。就像这个函数只允许打印最大数量的字符 以下是我代码的一部分: ... move(3,0); printw(result_2); sleep(1); ... result_2有一个很长的字符串,我知道它正确地包含了长字符串 我试图打印的字符串是关于txt文件的所有信息 我尝试使用其他函数,如addstr(),但遇到了相同的问题。有没有办法用ncurses打印长字符串 这是我的字符串中的内容: user: asdasdasd
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之上实现的一个小部件库(例如)。我认为它会在遇到第一个
\n
时停止。。。(我曾经遇到过这个问题,就我记忆所及)Jean MarcZimmer我在文本文件中有多个\n
,我对此没有任何问题……我当时不知道。很抱歉(与您的问题没有直接关系,但我希望result\u 2
中没有任何百分号。最好避免这种风险,并printw(“%s”,result\u 2)
)没有,并且没有任何注释会引出有用的信息。Id不起作用:(.输出文本在任何时候都不会到达窗口底部。当它停止显示信息时,我可以看到^A字符作为最后一个字符…@HessianMad如果您仍然有问题,请您的问题回答评论中的问题并添加一个。没有这些详细信息,人们只会猜测。我发现了问题。它不是aboutncurses
。是关于我的C
实现的。@hessianMad:那么你可能应该删除这个问题。