控制台应用程序打印与在线编译器不同

Console application prints differently than online compiler

我正在为 connect 4 编写一个运行良好的程序。 唯一的问题是 visual studio 中的方法

    public static void Display(char[,] board)
    {
        Console.Clear();
        for (int i = 1; i < 8; i++)
        {
            Console.Write(" " + i);
        }
        Console.WriteLine();
        for (int j = 0; j < 15; j++)
        {
            Console.Write("_");
        }
        Console.WriteLine();
        for (int i = 0; i < 6; i++)
        {
            for (int j = 0; j < 7; j++)
            {
                Console.Write("|" + board[i, j]);
            }
            Console.WriteLine('|');
        }
        for (int j = 0; j < 15; j++)
        {
            Console.Write("¯");
        }
        Console.WriteLine();
    }

打印最后一个 for 循环太低。这是不够的。 应该是这样的(在repl中工作)

但会像那样打印(在 VS 中)

我试着用 ¯ 代替 ‾ 但它只是打印出问号 ??????????

为什么不使用旧的 Box Drawing 字符?

您将得到如下输出:

public static void Display(char[,] board)
{
    Console.Clear();

    Console.Write(" ");
    for (int i = 1; i < 8; i++)
    {
        Console.Write(" " + i + "  ");
    }
    Console.WriteLine();

    Console.Write("┌");
    for (int j = 0; j < 6; j++)
    {
        Console.Write("───┬");
    }
    Console.WriteLine("───┐");

    for (int i = 0; i < 6; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            Console.Write("│" + " " + board[i, j] + " ");
        }
        Console.WriteLine("│");

        Console.Write(i < 5 ? "├───┼" : "└───┴");
        for (int j = 0; j < 5; j++)
        {
            Console.Write(i < 5 ? "───┼" : "───┴");
        }
        Console.WriteLine(i < 5 ? "───┤" : "───┘");
    }

    Console.WriteLine();
}