4

我刚开始学习计算机科学。编程老师选择了 C++ 来教我们过程式编程,因此给了我们代码示例和练习。我们得到的第一个示例是 CLI “查找正确的数字”游戏。真正的第一个任务是简单地重新输入源代码,编译并运行它。我已经使用 Linux 好几年了(尽管我根本不是计算机书呆子),当我编译代码时,它失败了。查看错误日志让我注意到我的老师显然没有考虑 Unix 用户。

她调用了该conio.h库,这是 MS-DOS 编译器的旧标头,正如我在那里读到的:https ://stackoverflow.com/a/8792443/6723830 由于使用and ,
我遇到了另外两个错误,它们是根据我所学到的,仅限 Windows 的功能。system("cls");getch();

在我的研究过程中,我无法为这些功能找到合适的替代品。至少不是适合我当前编程水平的简单解决方案。我正在考虑使用ncurses.h,但我已经阅读了这个页面,这真的很有趣,但是 NCurses 被描述为矫枉过正......</p>

那么,有没有一种跨平台的方式来清理屏幕并保持输出窗口直到用户按下任意键?NCurses 是否像人们所说的那样矫枉过正,还是目前最好的解决方案?
我想我将不得不在接下来的作业中做这样的 CLI 事情。当然,我可以简单地使用仅限 MS 的功能,这样她就不会抱怨,但我宁愿能够生成可互操作的代码。

4

1 回答 1

4

清除控制台窗口最常见和最便携的方法是简单地编写一个函数来输出一堆换行符,例如:

void clearScreen()
{
    for(int i = 0; i < 15; ++i)
        std::cout << '\n';
}

为了保持输入,您可以编写一个暂停函数,例如:

void pause() // wait for input and discard any unnecessary input 
{
    std::cin.get(); 
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
于 2016-09-08T15:06:53.010 回答