A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© FrancisTan 中级黑马   /  2014-7-3 16:45  /  1116 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 FrancisTan 于 2014-7-9 08:05 编辑

例1:
int counter = 0;
char c = Convert.ToChar(Console.Read());

while (counter++ < 10)
{
        switch (c)
         {
                case 'y':
                        Console.WriteLine("Yes!");
                        break;
                case 'n':
                       Console.WriteLine("No!");
                       break;
                default:
                      Console.WriteLine("Please enter \"y\" or\"n\".");
                      break;
         }

        c = Convert.ToChar(Console.Read());
}

Console.WriteLine("Test success!");

例2:
int num1 = Console.Read();
int num2 = Console.Read();

Console.WriteLine("num1:{0}\nnum2:{1}\nnum1 + num2 : {2}", num1, num2, num1+num2);

关于Console.Read()为变量输入值的问题,为什么上二例,我得不到想要的结果?
百度搜索“清空键盘缓冲区”,回答是“Console.Read()"已经封装得很好,不需要担心键盘缓冲区的问题。
求教师同学们指教!




5 个回复

倒序浏览
因为console.read是回车之后才读取,并且read是把你输入的首字符转换为ascii码。
用Convert.ToInt32(Console.ReadLine());
回复 使用道具 举报
向晓伟 发表于 2014-7-3 17:35
因为console.read是回车之后才读取,并且read是把你输入的首字符转换为ascii码。
用Convert.ToInt32(Consol ...

哦,问题已经解决  谢谢这位同学!
回复 使用道具 举报
Console.Read()默认输入的是字符串,必须通过convert函数把字符串转换成相应的数据类型才能使用!
回复 使用道具 举报
The_Enternal 发表于 2014-7-7 13:33
Console.Read()默认输入的是字符串,必须通过convert函数把字符串转换成相应的数据类型才能使用! ...

可是Convert.ToInt32(Console.Read())得到的可不是我们想要的值呢!
回复 使用道具 举报
第一例不用Convert.ToInt32(Console.Read())啊,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马