C++ 是否有方法在生成行后删除控制台中的行?
在这段代码中,玩家和计算机猜测船只的位置,计算机做出响应C++ 是否有方法在生成行后删除控制台中的行?,c++,console,C++,Console,在这段代码中,玩家和计算机猜测船只的位置,计算机做出响应 while (PlayerWins != true && ComputerWins != true) { PlayerWins = WinCondition(ComputerGrid); //same here ComputerWins = WinCondition(ComputerGrid); if (CurrentPlayer == true)
while (PlayerWins != true && ComputerWins != true)
{
PlayerWins = WinCondition(ComputerGrid); //same here
ComputerWins = WinCondition(ComputerGrid);
if (CurrentPlayer == true)
{
cout << "Where do you want to guess" << endl;
cin >> AttackX >> AttackY;
Attack(AttackX - 1, AttackY - 1, ComputerGrid);
CurrentPlayer = !CurrentPlayer;
}
else
{
ComputerAttack(PlayerGrid);
CurrentPlayer = !CurrentPlayer;
}
}
while(PlayerWins!=true&&ComputerWins!=true)
{
PlayerWins=WinCondition(ComputerGrid);//此处相同
ComputerWins=WinCondition(计算机网格);
如果(CurrentPlayer==true)
{
cout AttackX>>AttackY;
攻击(攻击X-1,攻击Y-1,计算机网格);
CurrentPlayer=!CurrentPlayer;
}
其他的
{
计算机攻击(PlayerGrid);
CurrentPlayer=!CurrentPlayer;
}
}
这个输出类似这样的东西
我想知道,如果玩家选择删除,他们是否可以删除几行以使其更干净。您可以使用终端和平台相关的方式,或者我想到的方式:
#include <iostream>
#include <vector>
std::vector<const char*> keeper;
void Clear(); //declaration
void println(const char* what) {
keeper.push_back(what);
std::cout << what<<std::endl;
}
void deleteln() {
auto iter = keeper.end() - 1;
keeper.erase(iter);
Clear();
for (int i = 0; i < keeper.size(); ++i) {
std::cout << keeper[i] << std::endl;
}
}
void Clear()
{
std::cout << "\x1B[2J\x1B[H"; //clear console
}
#包括
#包括
病媒保持器;
无效清除()//宣言
void println(常量字符*什么){
守门员。推回(什么);
STD:是的,但不是在标准C++中,你在哪个平台下进行定位?<代码> \ R '/COD>将光标重置到行的开头,所以打印<代码> \r>代码>,一些空间和<代码> \r>代码>可以工作。这取决于控制台。大多数控制台接受。