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

标签 c++ matrix terminal

我在终端打印了一个矩阵。经过计算,我得到了另一个矩阵。我想打印新矩阵来替换旧矩阵。如何清除终端中的旧矩阵? 此代码 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/

相关文章:

c++ - C++中动态数组的长度

c++ - 基类 -> 派生类和 C++ 中的反之转换

macos - 如何从终端 (Mac OS X) 中查看文件/文件夹上的标签颜色

c++ - 用于 C++ 分析的 Very sleepy 和 Callgrind 之间的区别

php - swig 和 libcurl 在一起

c# - 如何在c#中实现决策矩阵

c - 修改终端中已有的文本

python - 有什么方法可以用 python 将终端输出分配给变量?

C# - 数组转置位级别

python - 对 numpy 数组有多个相等条件