问题描述
for (int i = 100; i > 0; i--)
{
Console.Write(i + "\t");
}
在控制台窗口中,第一行打印得很好。但其他行不是从行首开始。(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();