问题一:下面的C++代码换成C#代码该如何写(请考虑如果用户输出的不是数字的情况)。int n;
cin>>n;
问题二:下面的代码我输入1为什么输出49??怎么修改?using System;
class A
{
    public int n;
    public object o;
    void Input()
    {
        n = Console.Read();
    }    public void Show()
    {
        Console.WriteLine("n = {0}", n);
    }    static void Main(string[] args)
    {
        A a = new A();
        a.Input();
        a.Show();
        Console.Read();
    }
 
}

解决方案 »

  1.   

    using System;
    class A
    {
        public string n;
        public object o;
        void Input()
        {
            n = Console.ReadLine();
        }    public void Show()
        {
            Console.WriteLine("n = {0}", n);
        }    static void Main(string[] args)
        {
            A a = new A();
            a.Input();
            a.Show();
            Console.Read();
        }}
      

  2.   

    因为一开始的时候 n 是数字 所以 直接将接收到的1 变成了 ASC码所以 要用string 接收字符串  Console.ReadLine();
    或者用 char  接收字符 Console.Read();
      

  3.   

    using System;
    class A
    {
        public int n;
        public object o;
        void Input()
        {
            while(true){
                n = Console.Read();
                if (n < 58 && n > 47)
                    break;
                //Console.WriteLine("please input number");
            }
            
        }    public void Show()
        {
            Console.WriteLine("n = {0}", (char)n);
        }    static void Main(string[] args)
        {
            A a = new A();
            a.Input();
            a.Show();
            Console.Read();
        }}
      

  4.   

    问题一:
    Console.ReadLine();
    至于如何来判断是否一个数字,两种方法:1.一个字符一个字符来进行判断,比较麻烦;2.使用正则表达式,这个更方便..问题二:
    你输入的是字符"1",ASC码值是49,你用的是Int类型的变量来接收,故输出也是49..
      

  5.   

    问题2,可以用int.tryParse,可以鉴别是否可以转化为数字
      

  6.   

    miyimei(阿拉丁) ,请问一下,如果用你所说的方法要怎么写,好像没有int.tryParse这个东西.
      

  7.   

    namespace ConsoleApplication1
    {
        class A
        {
            public int n;        public void Input()
            {
                string str=Console.ReadLine();
                while(!int.TryParse(str, out n))
                {
                    Console.WriteLine("ERROR!!! Not a int!");
                    Console.Write("Input again: ");
                    str = Console.ReadLine();
                }
            }        public void Show()
            {
                Console.WriteLine("RIGHT!!! n = {0}", n);
            }        static void Main(string[] args)
            {
                Console.Write("Please input a int:");
                A a = new A();
                a.Input();
                a.Show();
                Console.Read();
            }
        }}
    这才是正解
      

  8.   

    bool int.TryParse(string, out int)函数,将输入的字符串转化为整数,如果转化成功,则返回true,转化的整数又第二个参数返回;否则返回false。
    int int.Parse(string)函数将字符串转化为整数,转化的值返回,如果string转换失败,则抛出异常
      

  9.   

    miyimei(阿拉丁)你好,我用你的那段程序去试了,可能出现了以下的错误?why?
    "C:\Documents and Settings\fang\桌面\JudgeInputV\JudgeInputV\Class1.cs(14): “int”并不包含对“TryParse”的定义"
      

  10.   

    TryParse是.net2.0加入的,你可能使用的是vs.net2003吧