在新行上显示键入的字符

时间:2015-08-05 09:53:49

标签: c#

可能是个有趣的问题,我是C#的新手

class Program
{
   static void Main(string[] args)
   {
       int a;
       a = Convert.ToInt32(Console.ReadLine());
       Console.WriteLine(a);
       Console.ReadKey();
   }
}

我希望在键入任何字符后,这些字符将写入控制台中的新行,尽管这些字符打印在一行上。哪里错了?

P.S。

Console.WriteLine("ASD");
Console.WriteLine("DSA");

按预期显示:

ASD
DSA

2 个答案:

答案 0 :(得分:3)

Console.WriteLine()方法的每次调用都会打印一个新行。 您的示例所做的就是获取所有输入并一次打印输入。

您可以尝试这样做:

class Program
{
    static void Main(string[] args)
    {
        int a;

        while(true)
        {
            a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(a);
        }
    }
}

编辑:包含使用char和Console.Read()的版本,因为它似乎更合适

class Program
{
    static void Main(string[] args)
    {
        char a;

        while(true)
        {
            a = (char)Console.Read();
            Console.WriteLine(a);
        }
    }
}

答案 1 :(得分:1)

Console.ReadLine()方法不会终止该行(正如您所期望的那样)。来自MSDN的报价:

  

一条线被定义为一个字符序列,后跟一个滑架   return(十六进制0x000d),换行符(十六进制0x000a)或者   Environment.NewLine属性的值。返回的字符串   不包含终止字符。

因此,您只需取出未终止的行并将其打印出来。

来源:https://msdn.microsoft.com/en-us/library/system.console.readline(v=vs.110).aspx