可能是个有趣的问题,我是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
答案 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