cin.ignore相当于`ncurses`

时间:2017-06-26 05:00:27

标签: c++ ncurses

我有一个更清晰的变体system("Pause")等待用户按下回车:

#include <iostream>
void pause()
{
    std::cin.get();
    std::cin.ignore();
}

但是,我找不到system("CLS")(或system("clear"))的干净变体,因此我将整个应用程序切换为ncurses。 经过一些阅读后,我发现ncurses有自己的一组I / O函数,std::coutstd::cin已替换为echo()getch()。< / p>

该功能pause()也必须转换为ncurses,但我的问题是我不知道与std::cin.ignore的正确对等。

1 个答案:

答案 0 :(得分:0)

您可以使用这些函数(不仅仅是ncurses)放弃curses中的输入:

  • flushinp
      

    flushinp 例程会抛弃所有输入的类型      用户尚未被该程序读取。

  • intrflush
      

    如果启用了 intrflush 选项( bf 为TRUE),则为中断键   按下键盘(中断,中断,退出),所有输出都在   tty驱动程序队列将被刷新,从而产生更快的响应效果   中断,但导致诅咒有错误的想法是什么   屏幕上。禁用该选项( bf 为FALSE)可防止刷新。   该选项的默认值继承自tty驱动程序设置。   窗口参数被忽略。