namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine("请定义个数字");
           // i =  Convert.ToInt32( Console.ReadLine());//输入什么就是什么。
            i = Console.Read();//输入1结果是(1+48)=49;
            ///为什么呢?            Console.WriteLine("是什么呢?{0}",i );
            Console.ReadLine();
            
        }
    }
}

解决方案 »

  1.   

    应该是把输入的1当做字符串了 然后程序内部给转换成int值了 具体的转换机制...
      

  2.   

    相当于
    (int)'1' = 49
      

  3.   

    1 是 ASCE 码中的 30(十六进制),1对应于 ASCE 码中十六进制 31=十进制的49,大概就是这样了
      

  4.   

    返回是char字符的整数表示,因为字符本来就是数字...这些是基础知识,要显示字符形式应该转换或者用ReadKey方法...
      

  5.   


    写错了,改一下,呵呵
    0 是 ASC 码中的 30(十六进制),1对应于 ASC 码中十六进制 31=十进制的49
      

  6.   

    Console.Read() 方法的说明是:Read the next character from the standard input stream.(MSDN)
      

  7.   

    i = Convert.ToInt32(Console.Read());//改成这样
      

  8.   

    console.raad(),和console.write(),输入和输出的都是字符串,而你的i强制装换为整型了,自然就是字符串1的ascII码值了。
      

  9.   

    你们自己不学习不看MSDN就别乱讲话...
      

  10.   

    Console.Read();接收一个char类型,返回的是一个int类型  不是string   你输入‘1’,返回字符‘1’的Asc码  应该是这样
      

  11.   

    Console.Read() 只接收输入字符串的第一个 char,然后返回这个 char 的 ASCII Code楼主,结个贴吧。
      

  12.   

    你把鼠标 放在Console.Read() 上面
    看看它返回的是int类型么
    返回的都不是int类型 你用int类型来接收 当然就......