为什么第一列在 c# 中的控制台 window 上保持为空

why does the first column remain empty on console window in c#

我是 运行 打印从 100 到 1 的数字的简单代码:

for (int i = 100; i > 0; i--)
{
   Console.Write(i + "\t");
}

在控制台中 window 第一行打印正常。但其他行不是从行首开始的。(100 以下的列保持为空)

这是我得到的结果的图片。我怎样才能解决这个问题? my result

如果您想要一个关于如何检查控制台大小的简单示例,Console.WindowWidth 是一个很好的起点。然后你只需要统计一下能装多少列(numCols),写多少条数据(n)就可以了。

// Current window width in characters
int w = Console.WindowWidth;
int tabSize = 8;
int numCols = w / tabSize;

for (int i = 100, n = 0; i > 0; i--, n++)
{
    if (n == 0)
    {
        // First element, do nothing
    }
    else if (n % numCols == 0)
    {
        // Written numCols elements, go to new line
        Console.WriteLine();
    }
    else
    {
        // Simply add tab
        Console.Write("\t");
    }

    Console.Write(i);
}

Console.WriteLine();