且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

.net知识和学习方法系列(三)CSharp中控件台的输入输出

更新时间:2022-10-01 21:46:12

输出语句
Console.Write();
Console.WriteLine();
分别来说一下,Write方法是输出到控件台上内容,它有18种重载方法
WriteLine方法同样是输出到控制台上内容,它有19种重载方法,这两个难道只在重载方法上不同吗?其实是有差别的,从单词角度可看出Write只是输出内容,之后什么都没服,WriteLine是输入一行,当然一行的意思是包括回车换行的。
Console.Read();
Console.ReadLine();
来看输入,同样是个Read和ReadLine,这里就有不同的意思了,Read是读入一个字符,返回的是整形,这里返回的是这个字符的Ascall码,而ReadLine是读入一个或多个字符,返回一个字符串(string类形)。
表面看来,没有什么了,现在做个例子子,放两个Console.Read();然后在控制台上输入多个字符,结果会发现,控制台不会停两次,而是一下就会输出,按道理应该停两次来让我们输入两次呀?为什么呢?
其实Console.Read()和Console.ReadLine()都是以流的方式读入,又因为Read方法只取一个字符返回,如果输入的多于一个字符(其实即使输入一个字符,当两次Consowle.Read()时也连续输出,不会等待两次输入,因为Read会把回车换行也读进去,在流里现在就是三个,一个字符,一个换行,一个回车),Read只取一个,其它的还会在流里,当再次用Read方法时,还会从流里读取一个,如果是ReadLine,就会把流里余下的全部读走的。这就是为什么两个Read方法在一起不会停两次的原因。
那怎么读一个呢,Console里有个ReadKey方法,当输完一个后,自动结束。如下
 ConsoleKeyInfo cki = new ConsoleKeyInfo();
 cki = Console.ReadKey();
 Console.WriteLine ( cki.Key );
 Console.WriteLine(cki.KeyChar );

这里要说明的是cki.Key是返回一个字符,不管大小写,都返的是大写。cki.KeyChar返回的是原来的字符。





















本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/149997,如需转载请自行联系原作者