c# Read()与ReadLine()输入结果为何不一样?

x_hola
  • 666
using System;

namespace yuanjisuanqi
{
    class yuanjisuanqi
    {
        static void Main(string[] args)
        {
            Console.WriteLine("###########################");
            Console.WriteLine("圆面积计算器");
            Console.WriteLine("###########################");
            Console.WriteLine("请输入半径:");
            const double pi = 3.1415926;
            double r = Convert.ToInt32(Console.ReadLine());
            double s = pi * r*r;
            Console.WriteLine("这个圆的面积为:{0}",s);
            Console.ReadKey(true);
        }
    }
}

如果将代码中的ReadLine()改成Read(),输出的面积就不对,改成Read()后,如果键盘输入5,输入的结果则是53.

请问,这是为什么?
谢谢

回复
阅读 2.7k
2 个回答
dodomonster
  • 2.1k
✓ 已被采纳

Console.Read() 方法用于获得用户输入的任何值ASCII值,
Console.ReadLine()将获得的数据保存在字符串变量之中。

字符 5 的ASCII值就是53(0x35)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进