黑马程序员技术交流社区

标题: Console.Read()为变量输入值的问题 [打印本页]

作者: FrancisTan    时间: 2014-7-3 16:45
标题: Console.Read()为变量输入值的问题
本帖最后由 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()"已经封装得很好,不需要担心键盘缓冲区的问题。
求教师同学们指教!





作者: 向晓伟    时间: 2014-7-3 17:35
因为console.read是回车之后才读取,并且read是把你输入的首字符转换为ascii码。
用Convert.ToInt32(Console.ReadLine());
作者: FrancisTan    时间: 2014-7-4 17:31
向晓伟 发表于 2014-7-3 17:35
因为console.read是回车之后才读取,并且read是把你输入的首字符转换为ascii码。
用Convert.ToInt32(Consol ...

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

可是Convert.ToInt32(Console.Read())得到的可不是我们想要的值呢!
作者: 麦田怪圈    时间: 2014-7-7 16:21
第一例不用Convert.ToInt32(Console.Read())啊,




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