| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 15254 人关注过本帖
标题:c#控制台不做停留,一闪而过,怎么解决。(visual stdio 2008)
只看楼主 加入收藏
幽醉
Rank: 2
等 级:论坛游民
帖 子:68
专家分:61
注 册:2012-7-30
收藏
得分:0 
谢谢  我输出的是原来的东西  只是控制台直接闪过 其他的倒是没有什么问题
2012-07-30 11:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你是用Read()读,然后敲了一下回车,这个回车是第一个Read()读不到的,在下一个Read()或ReadLine()才读入,这样当然不等待了。把第一个Read()改成ReadLine()吧,连回车都收下,后面就可以用ReadLine()停留屏幕了。你一开始就敲回车看看!

[ 本帖最后由 TonyDeng 于 2012-7-30 11:26 编辑 ]

授人以渔,不授人以鱼。
2012-07-30 11:24
幽醉
Rank: 2
等 级:论坛游民
帖 子:68
专家分:61
注 册:2012-7-30
收藏
得分:0 
还有 如果我用System.Console.Read();或者Convert.ToInt32()(Console.Read())是不是可以避免这种问题?还有ReadLine()是不是读的字符串?请多指教。
2012-07-30 11:26
幽醉
Rank: 2
等 级:论坛游民
帖 子:68
专家分:61
注 册:2012-7-30
收藏
得分:0 
第一个改过 然后它就报错了- -
2012-07-30 11:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
下面是MSDN的内容:

在键入输入字符时, Read 方法会阻止其返回;该方法在您按 Enter 键时终止。
按 Enter 会在输入内容后面追加一个与平台有关的行终止序列(例如,Windows 追加一个回车符和换行符序列)。
对 Read 方法的后续调用一次检索输入中的一个字符。
检索完最后一个字符后, Read 会再次阻止其返回,并重复上述循环。


注意,只有执行以下操作之一才能获取属性值 -1:同时按修改键 Control 和控制台键 Z (Ctrl+Z),此按键组合发出到达文件尾条件;按发出到达文件尾条件的等效键,例如 Windows 中的 F6 功能键;或者将输入流重定向到具有实际的文件尾字符的源,例如文本文件。


使用 ReadLine 方法或使用 KeyAvailable 属性和 ReadKey 方法比使用 Read 方法更可取。
收到的鲜花
  • 幽醉2012-07-30 11:39 送鲜花  1朵   附言:我很赞同

授人以渔,不授人以鱼。
2012-07-30 11:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用幽醉在2012-7-30 11:27:29的发言:

第一个改过 然后它就报错了- -

ReadLine()读入的是string,不是char,要取这个string的第一个字符。如果用Read(),读到的是你键盘操作的第一个字符,下一个字符(即回车)被下一个Read()读入。要么你用KeyAvailable检测键盘缓冲区中是否还有数据,用一个循环把数据读完清空之后再调用一次Read()等待。
收到的鲜花
  • 幽醉2012-07-30 11:41 送鲜花  2朵  

授人以渔,不授人以鱼。
2012-07-30 11:38
幽醉
Rank: 2
等 级:论坛游民
帖 子:68
专家分:61
注 册:2012-7-30
收藏
得分:0 
哦哦 原来如此 谢啦
2012-07-30 11:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
C#的char不是ASCII码,你似乎把它当C用了。

授人以渔,不授人以鱼。
2012-07-30 11:43
幽醉
Rank: 2
等 级:论坛游民
帖 子:68
专家分:61
注 册:2012-7-30
收藏
得分:0 
额 好吧 我本来是想有c的基础学起来容易点吧
2012-07-30 11:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你输入中文看得到什么。C#的char是Unicode编码字符,不是ASCII。

授人以渔,不授人以鱼。
2012-07-30 12:01
快速回复:c#控制台不做停留,一闪而过,怎么解决。(visual stdio 2008)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032253 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved