C - 有没有办法从我的窗口中删除mvwprintw? (Ncurses)

问题描述:

我希望我的mvwprintw语句在代码中的一个点之后消失。我不知道如何删除打印语句。是否有打印功能可以做到这一点?我试图通过创建另一个充满空间的陈述,认为它会覆盖现有的陈述,而且看起来很空白。我尝试在网上查找,但找不到任何东西。请让我知道是否有办法。C - 有没有办法从我的窗口中删除mvwprintw? (Ncurses)

+0

清除整个行“我试图通过创建另一个完整的空间声明认为它会重叠它会显得空白。“究竟发生了什么?你能提供一些代码来展示你的尝试吗? –

+0

什么都没有发生,前面的消息仍然显示。 – user3753834

我确实找到了一种方法,希望这可以帮助未来有同样问题的人。你所要做的就是在你的陈述开始时加上\r,并且它会胜过之前在那个地方的任何东西。

mvwprintw(win2,3,16,"Hi."); 
mvwprintw(win2,3,16,"\rPlease make your first move."); //overwrites the "Hi" 
mvwprintw(win2,3,16,"\rPlease make your second move.");//overwrites the "Please make your first move" 

在打印语句中添加空格会擦除以前的消息。

+0

如果用较小的句子覆盖上次打印的文本,它会正常工作吗? –

+0

不,它会显示以前未包含的文本的其余部分。你可以解决这个问题,我在新句子的末尾添加空格。这将涵盖这一切。 – user3753834

+0

好的,谢谢你的回答:) –

您可以通过移动到行

move(3,0); 

的开头,然后清除行

clrtoeol();