C++ 如何清除终端中的一个矩阵,并在同一位置打印另一个矩阵

C++ 如何清除终端中的一个矩阵,并在同一位置打印另一个矩阵,c++,matrix,terminal,C++,Matrix,Terminal,我在终端上打印一个矩阵。经过计算,我得到了另一个矩阵。我想打印新的矩阵,以替换旧的矩阵。如何清除终端中的旧矩阵? 此代码标识用于创建矩阵。完成计算后,此函数将创建一个新矩阵 void TheNewMatrix(char newGame[20][50]){ for(int row=0; row<20; row++){ for(int col=0; col<50; col++){ newGame[row][col]=nextStep[ro

我在终端上打印一个矩阵。经过计算,我得到了另一个矩阵。我想打印新的矩阵,以替换旧的矩阵。如何清除终端中的旧矩阵? 此代码标识用于创建矩阵。完成计算后,此函数将创建一个新矩阵

void TheNewMatrix(char newGame[20][50]){

    for(int row=0; row<20; row++){
        for(int col=0; col<50; col++){
            newGame[row][col]=nextStep[row][col];
            cout<<newGame[row][col];
        }
        cout<<endl;
    }
}
void TheNewMatrix(char newGame[20][50]){

对于@nwp指出的(int row=0;row),您需要一个平台特定的代码来清除控制台屏幕。但是,在名为
cstdlib
的模块中,有一个函数调用系统标准命令处理器的特定命令。因此,在Windows上,您可以使用

system("cls");
在Linux上

system("clear");
允许您更改端子属性(换行符和返回符是其中的两个示例),但它们仅适用于单行。 请注意允许您清除屏幕和移动光标的命令:

(来自)

请注意,IO会被缓冲,许多系统在收到换行符后只“刷新”要输出的字符串,因此控制命令只有在手动刷新缓冲区时才会生效:
fflush(stdout);


注意:windows中对这些代码的支持是有限的,有关详细信息,请查看上述wikipedia文章中的“windows”部分。

标准库中不支持这些代码,因此您需要特定于平台的代码或类似ncurses的库来实现这一点。
system("clear");
printf("\033[XA"); // Move up X lines;
printf("\033[XB"); // Move down X lines;
printf("\033[XC"); // Move right X column;
printf("\033[XD"); // Move left X column;
printf("\033[2J"); // Clear screen
...