我正在尝试用C创建一个生命游戏程序,但我不太熟悉更新终端上显示的输出的过程。
因此,例如,我将有一个2d char数组,其中每个元素将包含'#'或' - '。我将这个数组打印到屏幕上,但是每次状态改变时都不打印新的2d数组,我想用新状态覆盖终端中的旧数组。
我已经想办法做到这一点,但运气不好。我找到的最接近的是printf函数(\ r)中的回车符,但希望有人可以告诉我最好的方法。
具体来说,我如何在屏幕上打印出2d数组,更改数组的元素,并打印旧数组的新数组,即覆盖它。
答案 0 :(得分:1)
(其中一些链接,代码片段是Linux,其他是Windows) 鉴于您的具体问题 ,(并假设您确实知道如何将数组写入控制台):
1) 编写第一个数组
2) 然后清除控制台(或覆盖控制台)
像这样:
#include <stdlib.h>
void main()
{
system("cls");
}
或者将以下内容写入stdout :( Linux)
write(1,"\E[H\E[2J",7);
这是/ usr / bin / clear所做的,除了它不会创建另一个进程 或两者:
void clear_screen()
{
#ifdef WINDOWS
system ( "CLS" );
#else
// Assume POSIX
system ( "clear" );
#endif
}
3) 编写下一个数组
答案 1 :(得分:0)
您可以尝试这样的事情:
#include<stdio.h>
int main(void)
{
printf ("#####-----\r");
printf ("-#####----\r");
}
不确定我是否真的回答了你的问题。如果这不是你的答案那么你肯定在寻找类似ncurses的东西。