【问题标题】:How would I overwrite a printed 2D array to simulate 'updates'我将如何覆盖打印的二维数组来模拟“更新”
【发布时间】:2018-06-05 12:06:21
【问题描述】:

因此,给定一个名为“world”的二维数组和下面的代码,将数组输出到控制台。我想使用 while 循环不断更新输出的数组,以通过更改数组值来模拟运动和其他动作,而不会在每次更新时杂乱地重新打印整个内容。

我想最好的方法是尝试将输出流重置为第一行,并在每次更新时覆盖之前打印的数组,但我不确定如何执行此操作。

char world[20][20];
for (unsigned int row = 0; row < std::size(world); row++)
{
    for (unsigned int col = 0; col < std::size(world); col++) 
    {
        std::cout << world[row][col];
    }
    std::cout << std::endl;

}

【问题讨论】:

  • 发布更多代码——尤其是world的定义。
  • char world[20][20];
  • col &lt; std::size(world) 不应该是col &lt; std::size(world[row])吗?

标签: c++ arrays multidimensional-array


【解决方案1】:

here 所述,有一种简单的方法可以在一行中使用\rprintf。但是,如果像您一样希望重印多行,我不确定这是否容易。

更好的建议是使用ncurses 之类的东西,它似乎是为您的目的而设计的,并且可能用于使您见过的其他程序以这种方式运行。

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 2014-03-25
    • 2011-03-02
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多