C# 如何打印下一行的输出?

C# 如何打印下一行的输出?,c#,C#,例如,我试图以以下方式打印输出: 磁盘:12345 移动:1371531 我该怎么做,有人能帮我吗 { class Program { static void Main(string[] args) { int n = 2; for (int j = 1; j <= 5; j++) Console.WriteLine("disk: {0}", j); for (int i = 1; i &

例如,我试图以以下方式打印输出:
磁盘:12345
移动:1371531
我该怎么做,有人能帮我吗

{
    class Program
 {
    static void Main(string[] args)
    {
        int n = 2;

        for (int j = 1; j <= 5; j++)
            Console.WriteLine("disk: {0}", j);

        for (int i = 1; i <= 5; i++)                               
                Console.WriteLine("moves: {2:N0}",
                                  n, i,(long)Math.Pow(n, i) - 1);

    }

  }
}
{
班级计划
{
静态void Main(字符串[]参数)
{
int n=2;

对于(int j=1;j
Console.WriteLine
听起来每次都会写一行新行。如果您不希望出现这种行为,请使用
Console.write

Console.Write("Disk:");
for (int j = 1; j <= 5; j++)
     Console.Write(" {0}", j);
Console.WriteLine();

Console.Write("Moves:");
for (int i = 1; i <= 5; i++)                               
     Console.Write(" {2:N0}", (long)Math.Pow(n, i) - 1);
Console.WriteLine();
Console.Write(“磁盘:”);

对于(int j=1;j您可以使用
控制台。写入
,它不会打印回车

但是,在这种情况下不需要for循环。只需使用
Enumerable.Range

  var n = 2;
  var disks = Enumerable.Range(1, 5).ToList();
  var moves = Enumerable.Range(1, 5).Select(i => (long) Math.Pow(n, i) - 1);
  Console.WriteLine("disk: {0}", string.Join(" ", disks));
  Console.WriteLine("moves: {0:N0}", string.Join(" ", moves));
结果:

磁盘:12345
移动:1 3 7 15 31


使用
string.PadLeft()
方法对文本进行对齐。当然,您可以用常量值替换幻数。这使您不必计算空格,并自动添加正确的空格数,以使字符串达到所需的长度

请注意,您还可以取消格式插入(即不再使用大括号)

static void Main(字符串[]args)
{
整数幂=2;
控制台写入(“磁盘:.PadLeft(8));

对于(int j=1;j谢谢。我到现在还没听说过PadLeft,这太棒了。非常感谢。非常感谢,这更有意义。明白。这也很容易理解。谢谢
static void Main(string[] args)
{
    int power = 2;

    Console.Write("disk:".PadLeft(8));
    for (int j = 1; j <= 5; j++)
        Console.Write(j.ToString().PadLeft(5));

    Console.WriteLine();
    Console.Write("moves:".PadLeft(8));
    for (int i = 1; i <= 5; i++)
        Console.Write(((long)Math.Pow(power, i) - 1).ToString().PadLeft(5));


    Console.WriteLine();
    Console.ReadLine();
}