我在c#中main函数中写了一段如下代码:
char signal ;
signal = (char)Console.Read();
if (signal!=0)
{
Console.WriteLine("123{0}45",signal.ToString());
}然后如果输入“1”+Enter的话可以正常显示,:123145
可是如果只按一个Enter的话
输出居然是
453这个是为什么呢?

解决方案 »

  1.   

    告诉你原因!Console.WriteLine("123{0}45",signal.ToString());因为你的enter,所以signal键值为13(回车的键值)而回车换行是1013,10换行,13回车!你的console.wirteline输出的是,123回车45此时,123,输出后,回车,光标回到行首,但是没有换行(10),所以接下来的45就把12覆盖了,形成了453的结果你可以测试一下!Console.WriteLine("123{0}4567",signal.ToString());//结果:4567,这是全覆盖完了Console.WriteLine("123{0}4",signal.ToString());//结果:423,覆盖一个Console.WriteLine("123{0}",signal.ToString());结果:123,光标处于行首Console.WriteLine("123{0}456",signal.ToString());//结果:456
      

  2.   

    using System;
    class Class1
    {

     
    static void Main(string[] args)
    {
    string signal ;
    signal = Console.ReadLine();
    if (signal!="0")
    {
    Console.WriteLine("123{0}4567",signal.ToString());//结果:4567,这是全覆盖完了Console.WriteLine("123{0}4",signal.ToString());//结果:423,覆盖一个Console.WriteLine("123{0}",signal.ToString());//结果:123,光标处于行首Console.WriteLine("123{0}456",signal.ToString());//结果:456
    }
    Console.ReadLine();
    Console.ReadLine();
    }
    }