如何覆盖打印的2D阵列以模拟“更新”

问题描述 投票:1回答:1

因此给定一个名为“world”的2D数组和下面的代码将数组输出到控制台。我想使用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;

}
c++ arrays multidimensional-array
1个回答
1
投票

有一种简单的方法可以在一行上使用\rprintf,如here所讨论的那样。但是,如果你想重新打印多行,我不确定这很容易。

一个更好的建议是使用像ncurses这样的东西,它似乎是为你的目的而设计的,并且可能用于制作你见过的其他程序。

© www.soinside.com 2019 - 2024. All rights reserved.