using System;
class myonec
{
    public static void Main()
    {
        double  myonecmaina = new double();
        string str;
        str= Console.ReadLine();
        myonecmaina = double.Parse(str);
        char js;
        int a;
        a = Console.Read();
        js = (char)a;        double d = new double();
        str = Console.ReadLine();//为何执行到这里时候就提示错误呢??
        d = double.Parse(str);//提示错误行数是在这里,不过经检查前面一行就没有执行
        if (js == '+')
        {
            
            myonecmaina = myonecmaina +d;        }
        Console.WriteLine(myonecmaina);
        Console.WriteLine(js);    }
}

解决方案 »

  1.   

    str = Console.ReadLine();//为何执行到这里时候就提示错误呢?? 你这里获取的值 可能是空的。
      

  2.   

    str = Console.ReadLine();//为何执行到这里时候就提示错误呢??
    程序运行到这里就根本没法在输入值了,程序直接终止了。难道程序只允许有一个Console.ReadLine();输入
      

  3.   

    执行到第2个  str = Console.ReadLine();
    的时候你没有输入值,
    所以double.Parse会出错
      

  4.   

    尝试了一下修改
    using System;
    class myonec
    {
        public static void Main()
        {
            double  myonecmaina = new double();
            string str;
            str= Console.ReadLine();
            myonecmaina = double.Parse(str);        double d = new double();
            str = Console.ReadLine();//为何执行到这里时候就提示错误呢??
            d = double.Parse(str);//提示错误行数是在这里,不过经检查前面一行就没有执行
            char js;
            int a;
            a = Console.Read();
            js = (char)a;        
            if (js == '+')
            {
                
                myonecmaina = myonecmaina +d;        }
            Console.WriteLine(myonecmaina);
            Console.WriteLine(js);    }
    }
    将中间那部分提前就可以正常执行为什么呢??
      

  5.   

    我给你调试了:  
     public static void Main() 
        { 
            double  myonecmaina = new double(); 
            string str; 
            str= Console.ReadLine(); 
            myonecmaina = double.Parse(str); 
            str= Console.ReadLine(); 
           
           
            char js; 
            int a; 
            a = Console.Read(); 
            js = (char)a; 
            double d = new double(); 
            d = double.Parse(str); 
             if (js == '+') 
            { 
                
                myonecmaina = myonecmaina +d;         } 
            Console.WriteLine(myonecmaina); 
            Console.WriteLine(js);     } 
      

  6.   

    如果你输入是   
    4
    5
    第一个Console.ReadLine()读的是4,第二个Read()读的是5,第三个ReadLine可能读得是你的回车 报错。你输入
    3
    3444
    str = 3
    a =3
    str = 444
      

  7.   


    改成这样 a = int.Parse(Console.ReadLine());就可以了吧!
      

  8.   

    为什么调整顺序后就可以执行?原因在哪里啊?
    Console.ReadLine();   1 
    Console.Read();       2 
    Console.ReadLine();   3
    原因就是 3读到2的回车符了。 read只读取一个字符。