控制台写入光标位置

时间:2011-12-10 23:02:50

标签: c# console

我在控制台画一个十字架。这是我的代码:

for (int x = 0; x < 320; x++)
{
    for (int y = 0; y < 100; y++)
    {
        Console.SetCursorPosition(Convert.ToInt32(x / 4),Convert.ToInt32(y / 4));

        if (x == 160)
        {
            if (y == 50)
            {
                Console.Write("┼");
            }
            else
            {
                Console.Write("│");
            }
        }
        else
        {
            if (y == 50)
            {
                Console.Write("─");
            }
        }                    
    }               
}

控制台绘制十字形除了中间的“┼”符号。当我调试程序时,它会点击Console.Write("┼");行。相反,程序写了“─”符号。我做错了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

问题似乎是您要多次写入每个位置,因为您将除以4的部分。

当(x,y)为(160,50)时,你在(40,12)处写一个十字。然后(x,y)是(160,51),所以你在同一个位置写一个垂直管道,覆盖十字架。然后当(x,y)变为(161,50)时,用破折号覆盖管道。

请改为尝试:

for (int x = 0; x < 80; x++)
{
    Console.SetCursorPosition(x, 12);
    Console.Write("─");
}

for (int y = 0; y < 25; y++)
{
    Console.SetCursorPosition(40, y);
    Console.Write("|");
}

Console.SetCursorPosition(40, 12);
Console.Write("┼");