C#未处理formatexception 总是报异常

///字符的读取Console.Read();用来读取一个字符。Console.WriteLine("请输入一个字符:");intch=Console.Read();//... ///字符的读取Console.Read();用来读取一个字符。
Console.WriteLine("请输入一个字符:");
int ch = Console.Read(); //console.read()函数返回的是一个整形的ASCII编码。
Console.WriteLine("ASCII编码为:" + ch);
char tt = Convert.ToChar(ch);//将ch整型变形转换为char型
Console.WriteLine(tt);
Console.WriteLine(" "); //这一段加上去下面的程序就会出现异常
//根据圆的半径求面积
double r, s;
Console.WriteLine("r=");
//string name = Console.ReadLine();
string xx = Console.ReadLine();
//xx = Console.ReadLine();
r = Convert.ToDouble(xx);
//因为console.readline();返回的是一个字符串
s = 3.14 * r * r;
Console.WriteLine("s=" + s);

C#未处理formatexception 总是报异常,如果将//根据圆的半径求面积 上面一段作块注释只运行//根据圆的半径求面积下面的一段程序就能正常运行,不知是什么原因
展开
 我来答
科学发簪观
推荐于2016-02-06 · TA获得超过1342个赞
知道小有建树答主
回答量:896
采纳率:0%
帮助的人:662万
展开全部


            int ch = Console.Read();
            Console.WriteLine("ASCII编码为:" + ch);
            char tt = Convert.ToChar(ch);
            Console.WriteLine(tt);
            Console.WriteLine(" ");
            
            // 要注意的就是下面这一行↓
            Console.ReadLine();
                         
            double r, s;
            Console.WriteLine("r=");
            string xx = Console.ReadLine();
            r = Convert.ToDouble(xx);
            s = 3.14 * r * r;
            Console.WriteLine("s=" + s);

这是老问题了,关键在于

Console.Read()

Console.ReadLine()

之间的区别。具体可以参看MSDN:

http://msdn.microsoft.com/zh-cn/library/system.console.read.aspx

的“备注”这一节。

解决方法是在

Console.Read()

之后和下一次

Console.ReadLine()

之前的任意一处,调用一次

Console.ReadLine()

来清除控制台的输入缓冲区。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式