我用C ++制作了一个简单的Turing机器,它从.txt文件中读取输入,然后在终端中cout的输出。问题是每次char移动时它将其打印在下一行上,我想要的是在同一行上引用输出,因此它只会被覆盖。是的,我尝试使用“ \ r”,但是它只会打印第一个字符而不是整个数组
for (int j = 0; j < rule; j++)
{
cout << tape[j];
//Sleep(1);
}
cout << endl;
答案 0 :(得分:0)
我想这就是你想要的:
for (int j = 0; j < rule; j++)
{
std::cout << tape[j] << "\r"; // \r puts cursor back to the start
Sleep(1000); //Sleep takes milliseconds so for 1 second you need 1000
}
std::cout << std::endl;
\ r不适用于所有输出设备。如果您真的想控制在屏幕上的绘制位置,则应查看ncurses。 https://en.wikipedia.org/wiki/Ncurses
答案 1 :(得分:0)
我发现使用 System(“ CLS”)帮助我解决了问题,在cout之后清除了终端屏幕,但是由于它是for循环,因此会再次使用新值打印数组< / p>
for (int j = 0; j < rule; j++)
{
cout << tape[j];
//Sleep(1);
}
cout << endl;
system("CLS");
}
return 0;