#include <iostream>
using namespace std;
int board[10][10] = {{0,1,0,0,0,1,1,0,0,0},
{0,0,0,0,0,1,1,1,0,0},
{0,0,1,0,0,1,0,1,0,1},
{0,1,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,1,1,0,0,0},
{0,0,0,0,0,1,1,1,0,0},
{0,0,1,0,0,1,0,1,0,1},
{0,1,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0}};
void PrintBoard()
{
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
if(board[i][j] == 1)
{
cout << '*';
}
else
{
cout << '-';
}
}
cout << endl;
}
}
int main()
{
bool done = false;
while(!done)
{
done = false;
PrintBoard();
int i = 0;
i++;
cout << i;
}
}
我的问题是将电路板打印到控制台上的相同位置。通过这种方式,它可以在控制台上向下打印数百个电路板。我希望它现在是一个无限循环,因为当我让后代部分工作时,它会像你一样流畅地移动,并期望该程序。
答案 0 :(得分:2)
如果您在Windows终端中,则会出现这种情况 http://en.wikipedia.org/wiki/ANSI_escape_code#Windows_and_DOS 会有所帮助。
char csi_esc = 27;
char csi_begin = '[';
// clear screen and reposition cursor
cout<<csi_esc<<csi_begin<< "2J]";
可能是一个开始。 (未经测试,我无法访问Windows终端)。
哎呀,我读的维基文章非常糟糕。
Win32控制台本身不支持ANSI转义序列 所有。诸如ANSICON [7]之类的软件可以作为一个包装器 标准的Win32控制台并添加对ANSI转义序列的支持。 否则,软件必须使用类似ioctl的操作控制台 Console API [8]与文本输出交错。一些软件 在内部解释正在打印的文本中的ANSI转义序列 将它们翻译成这些电话。[9]
所以你应该使用常规的WinAPI调用。
#include<windows.h>
void PrintBoard(){
// Position cursor at 0,0
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;
coord.X = coord.Y = 0;
SetConsoleCursorPosition( console, coord );
// Draw the rest of the stuff.
}
请参阅Using High Level Input and Output Functions和API reference
如果你在基于unix的系统中的终端
#include<ncurses.h>
并链接库
g++ -o life life.cpp -lncurses