【问题标题】:Is there a way to scroll the console to a blank section?有没有办法将控制台滚动到空白部分?
【发布时间】:2020-07-11 05:22:12
【问题描述】:

我正在尝试用 C++ 编写我自己的基于文本的冒险游戏。 我想知道是否有一种方法可以滚动到控制台的空白部分,同时保留以前打印的文本?

所以看起来控制台正在被清除,但仍然可以向上滚动到上一个文本。

也许是一个滚动特定行数的函数?

让我知道你的想法。

【问题讨论】:

标签: c++ visual-studio visual-c++ console-application command-prompt


【解决方案1】:

嗯,解决方案很简单。 您可以使用 '\n' 特殊字符对一定数量的行运行循环。在这里,我定义了一个功能相同的函数:

void clear_screen(){
for(int i=0; i<=20;i++)
std::cout<<"\n";
}

此函数将清除接下来的 20 行。

【讨论】:

  • 这是一种解决方案,但它会在文本段落之间产生很大的空白。理想的功能是滚动直到所有先前的文本都消失,这样就可以开始打印,而文本正文之间没有间隙。
【解决方案2】:

我设法找到了解决方案:)

只想输出 20 个换行符的问题是有一个空格。

所以需要滚动来移动滚动条,然后直接退格以继续在连续段落中书写。

void scrollBy(int rows)

{

for (int i = 0; i < rows - 1; i++)
{

    cout << "\n";

}

for (int i = 0; i < rows; i++)
{

    cout << "\x1b[A";

}

cout << "\n";

}

末尾的 \n 是为了让下一个输入的文本换行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2012-05-13
    • 1970-01-01
    相关资源
    最近更新 更多