给定一个名为“world”的二维数组和下面的代码,将数组输出到控制台。我想使用 while 循环不断更新输出的数组,以通过更改数组值来模拟移动和其他 Action ,而不会在每次更新时杂乱无章地重新打印整个内容。
我认为最好的方法是尝试将输出流重置为第一行并在每次更新时覆盖之前打印的数组,但我不确定如何执行此操作。
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;
}
最佳答案
有一种简单的方法可以在一行中执行此操作,使用 \r
和 printf
,如讨论的那样 here .但是,如果像您一样希望重印多行,我不确定这是否容易。
更好的建议是使用类似 ncurses 的东西,这似乎是为您的目的而设计的,并且可能用于使您看到的其他程序以这种方式运行。
关于c++ - 我将如何覆盖打印的二维数组以模拟 'updates',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948230/