我在终端上打印一个矩阵。经过计算,我得到了另一个矩阵。我想打印新矩阵,以取代旧矩阵。如何清除终端中的旧矩阵? 此代码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);
}
创建一些矩阵,但我希望只在终端中显示一个矩阵。我试过了&#39; \ r&#39;和&#39; \ b&#39;,但他们没有工作。
答案 0 :(得分:1)
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);
< / p>
注意:在Windows中对这些代码的支持是有限的,请查看上述维基百科文章中的“windows”部分以获取详细信息。
答案 1 :(得分:0)
正如@nwp指出的那样,您需要一个特定于平台的代码来清除控制台屏幕。但是,在名为cstdlib
的模块中,有一个函数system
,它调用系统标准命令处理器的特定命令。因此,在Windows上,您可以使用
system("cls");
在Linux上,
system("clear");