gpt4 book ai didi

c++ - C++限制或使用户输入不可见(std::cin)

转载 作者:行者123 更新时间:2023-12-02 10:31:14 25 4
gpt4 key购买 nike

我有一个功能,等待用户按下回车键继续:

std::cout << "Press ENTER to continue..." << std::endl;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
std::cin.clear();

它工作正常,但允许用户在按Enter之前在控制台行上键入任何内容。这没什么大不了,但看起来有点丑陋。只是想知道是否有一种方法可以使输入不可见,或者只忽略Enter以外的任何击键?需要跨平台工作,所以我发现的某些解决方案无法工作。

谢谢

最佳答案

最好的选择是清除控制台,然后重新打印所有内容。

std::cout << "Press ENTER to continue..." << std::endl;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
std::cin.clear();

clearScreenFunc();
displayOldInformation();
displayNewInformation();


同样关于清除屏幕,您可以使用输出字符的组合来清除屏幕,或者使用特定于平台的选项,如果操作正确的话,它们既可以工作又可以看起来干净。例如。 :
void clearScreenFunc()
{
#if defined _WIN32
system("cls");
#elif defined (__LINUX__) || defined(__gnu_linux__) || defined(__linux__)
system("clear");
#elif defined (__APPLE__)
system("clear");
#endif
}

关于c++ - C++限制或使用户输入不可见(std::cin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62164503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com