用c ++清除屏幕的特定部分

时间:2017-09-01 14:15:33

标签: c++

我正在制作这样的节目:

void main()
{
  cout << "..."; /*large text*/
  cout << endl << "..."; /*intructions for word game*/
  cout << endl << "press enter to conitnue";
  getch();
}

现在我想在用户按下Enter并开始游戏后删除所有说明,但想要保存大文本。

有没有办法清除屏幕的特定部分?

提前致谢..

2 个答案:

答案 0 :(得分:0)

控制台(a.k.a。cout)的行为仅限文本,如打字机或电传打字机。这就是C ++标准语言可以保证的。其他任何东西都需要操作系统或平台特定功能。

古代Turbo C ++&amp; Borland C ++编译器有一个gotoxy函数,允许你定位光标(如果我的内存服务,编译器也支持擦除到行尾)。这些可用于清除控制台上的矩形区域。阅读有关其图形功能的文档。

您可能需要查看*光标定位库“,例如 NCurses

你可以使用古代艺术或重绘(重印)控制台(不清除它)。例如,如果您的终端(控制台)有25行,您将打印25行以使旧的东西消失。

但是,您可能需要考虑删除控制台应用程序并使用GUI系统。 GUI支持不是C ++语言的一部分,因此您需要在Internet上搜索“C ++ GUI Framework”并选择一个您可以学习并满足您要求的文档。

答案 1 :(得分:-1)

在冲洗之后,你不能这样做。

最简单的方法是编写大文本,编写指令,然后在触发getch()时清除屏幕并重新写入大文本。

要清除屏幕,您可以执行以下操作:

product: [
        {
        prod_id: 1,
        supplier_id: 8,
        prod_name: "Hippo + Friends Baby Boy Triangle Merino Pant",
        prod_price: "250",
        prod_stock: "20",
        prod_image: "assets/img/4ef1ef51ef6e2f0142452af60048df44Merino Pants.jpg"
    }
    ]

如果你想出一些不同的方法,并决定在刷新之前删除它,我会查看一些类似的例子,例如how a console progress bar works