Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cin.ncurses中忽略等效项`_C++_Ncurses - Fatal编程技术网

C++ cin.ncurses中忽略等效项`

C++ cin.ncurses中忽略等效项`,c++,ncurses,C++,Ncurses,我的系统(“暂停”)有一个更简洁的变体,它等待用户按enter键: #include <iostream> void pause() { std::cin.get(); std::cin.ignore(); } #包括 无效暂停() { std::cin.get(); std::cin.ignore(); } 但是,我找不到system(“CLS”)(或system(“clear”))的干净变体,因此我将整个应用程序切换到ncurses。 经过一番阅读,我发现nc

我的
系统(“暂停”)
有一个更简洁的变体,它等待用户按enter键:

#include <iostream>
void pause()
{
    std::cin.get();
    std::cin.ignore();
}
#包括
无效暂停()
{
std::cin.get();
std::cin.ignore();
}
但是,我找不到
system(“CLS”)
(或
system(“clear”)
)的干净变体,因此我将整个应用程序切换到
ncurses
。 经过一番阅读,我发现
ncurses
有自己的一组I/O函数,
std::cout
std::cin
echo()
getch()
取代


该函数
pause()
也必须转换为
ncurses
,但我的问题是我不知道与
std::cin的正确等价物。忽略

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

  • flushinp
    例程将丢弃由 用户,但程序尚未读取

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


离题:如果只想在回车时退出,您可能会发现
void pause(){std::cin.ignore(std::numeric_limits::max(),'\n');}
。您的版本可能会在流中留下垃圾,以供后续流读取。您不能使用
getch()
本身来实现
pause()
的效果吗?您需要在
getch()
之前调用
noecho()
,以隐藏输入字符。