Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有方法在生成行后删除控制台中的行?_C++_Console - Fatal编程技术网

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>代码>可以工作。这取决于控制台。大多数控制台接受。