修改前面的行C++ 我现在正试图让康威的C++游戏生活成为一个学校项目。问题是我不知道如何使董事会更有活力。如何返回几行以更改以前的输出?现在我不得不印刷各种各样的电路板,这不太美观

修改前面的行C++ 我现在正试图让康威的C++游戏生活成为一个学校项目。问题是我不知道如何使董事会更有活力。如何返回几行以更改以前的输出?现在我不得不印刷各种各样的电路板,这不太美观,c++,C++,在前面的问题上查找这个问题,我只能找到/r,如果电路板只有一行,它会有所帮助,但在我的情况下,它不是 编辑:如果有帮助,添加代码示例 for (int temp = 0; temp < iterations; temp++){ for(long long i = 0; i < height; ++i){ for(long long j = 0; j < width; ++j){ if (CurrentGen[i][j]){ cout &l

在前面的问题上查找这个问题,我只能找到/r,如果电路板只有一行,它会有所帮助,但在我的情况下,它不是

编辑:如果有帮助,添加代码示例

for (int temp = 0; temp < iterations; temp++){
  for(long long i = 0; i < height; ++i){
    for(long long j = 0; j < width; ++j){
      if (CurrentGen[i][j]){
        cout << "■" << " ";
      }
      else{
        cout << "." << " ";
      }
    }
    cout << "\n";
  }
  cout << "---------------------------------------" << endl;
  CurrentGen = NextGen(CurrentGen, height, width);
  sleep(1);
}

对于依赖于系统的代码来说,这将不仅仅是一个复杂的解决方案

然而,简单而快速的解决方案是可视化地更新同一行,即为每个循环迭代创建许多空行

for (int n = 0; n < 50; n++)
    {
        std::cout << "\n";
    }

正如我前面所说的,这是最好的C++,当没有可用的系统信息时,只能使用标准命令。 还有其他方法,例如:

清除终端的系统调用

打印结束行的标准方式

使用ncurses库包括

优点:是跨平台的 缺点:不能与标准I/O混合使用
印刷板。计算新板。清除屏幕。印刷板。等等。经典的游戏循环。@Jesper这样问我该如何清除屏幕?@NeilButterworth一把锤子可以工作。但它只起作用一次。C++提供了一个输出流。一旦有什么东西进入流中,就由接收者决定你是否可以后退。很多人没有。大多数人并不容易。解决方案是使用一个终端库,就像为您完成繁重的工作一样。@NeilButterworth如果使用文本控制台,我会让ncurses处理其中的细节。如果使用图形,您的图形库将为此提供一个功能—正如您所知:@Jesper是的,我知道—我的观点是OP可能没有。好的,感谢您的快速回答,假设我将使用您的解决方案,并尝试在将来学习游标库。@HectorOfTheRose我已修复了一个打字错误:您想要游标,可能是ncurses,不是游标。游标库打字错误已重新出现。