我在终端打印了一个矩阵。经过计算,我得到了另一个矩阵。我想打印新矩阵来替换旧矩阵。如何清除终端中的旧矩阵? 此代码 ID 用于创建矩阵。计算完成后,此函数将创建一个新矩阵。
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;
}
}
这是另一个代码:
for(int i=0;i<count;i++){
Sleep(1000);
Roles(newGame);
TheNewMatrix(newGame);
}
创建一些矩阵,但我希望在终端中只显示一个矩阵。我尝试了 '\r' 和 '\b',但它们不起作用。
最佳答案
ANSI control codes允许您更改终端属性(换行符和返回是其中的两个示例),但是这些属性仅适用于单行。 记下允许您清除屏幕和移动光标的命令:
(来自 Clearing output of a terminal program in Linux C)
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
...
请注意 IO 会被缓冲,许多系统只会在收到换行符后“刷新”要输出的字符串,因此控制命令只有在您手动刷新缓冲区时才会生效:fflush(stdout );
注意:windows 对这些代码的支持是有限的,请查看上述维基百科文章中的“windows”部分了解详细信息。
关于c++ - 如何清除终端中的矩阵,并在同一位置打印另一个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42927434/