黑马程序员技术交流社区

标题: 请问从键盘向控制台输入的回车被读取为什么字符? [打印本页]

作者: 鬼鬼    时间: 2014-3-20 12:18
标题: 请问从键盘向控制台输入的回车被读取为什么字符?
本帖最后由 鬼鬼 于 2014-3-23 22:38 编辑

请问如果从键盘向控制台输入回车,再用ReadKey()读取,那读到的究竟是什么?
我们知道文本文件中的换行本质就是 \r\n,但这不是两个字符么?
如果我用ReadKey()的话能一次性将二者读入么?
还是说控制台中的换行跟文本文件中的不一样?
作者: threederek    时间: 2014-3-20 14:31
看了lz问题后发现也不太明白,搜到的资料里有这么一段,应该是红字那段里面说的有个匹配
在.NET Framework 2.0以后,Console类增添了一个新的方法ReadKey(),该函数以非逐行缓冲的方式读取按键。
ReadKey()方法有两种形式,如下所示:
static ConsoleKeyInfo ReadKey();
static ConsoleKeyInfo ReadKey(bool intercept);
第一种形式将等待从键盘的输入,当用户按下某个按键时,立即返回该键,并在屏幕上显示相应的键。第二种形式也等待从键盘输入,当有键按下时立即返回该键,如果intercept为真,就不会显示该键,如果intercept为键,则屏幕上显示相应的键。
从上面的函数定义可以看到,该函数返回一个ConsoleKeyInfo对象,该对象时一个结构体,包含下面的只读属性:
char KeyChar
ConsoleKey Key
ConsoleModifiers Modifiers
其中,KeyChar属性包含了与所按下的键相匹配的char类型值。Key属性包含了一个ConsoleKey枚举定义的枚举值,ConsoleKey枚举定义了与键盘上所有按键相对应的键值。
ConsoleModifiers枚举定义了键盘按键的修饰符,如Shift,Ctrl和Atl。
作者: 鬼鬼    时间: 2014-3-21 00:24
threederek 发表于 2014-3-20 14:31
看了lz问题后发现也不太明白,搜到的资料里有这么一段,应该是红字那段里面说的有个匹配
在.NET Framework  ...

还是不太明了啊 ,如果是这样的话,那从回车键得到的结构体中KeyChar的值又是多少呢?
作者: threederek    时间: 2014-3-21 08:24
鬼鬼 发表于 2014-3-21 00:24
还是不太明了啊 ,如果是这样的话,那从回车键得到的结构体中KeyChar的值又是多少呢? ...

我也不是很明了啊 我也是从网上看到的资料 等我再看看 看到说的很明白的再来回吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2