麻烦哪位帮我看看为什么程序中第55行和第64行运行时,无法输入数值或通过 Console.ReadLine() 无法读取数值,程序的基本功能是摄氏度转换华氏度,或华氏度转换成摄氏度。烦请各位帮忙,本人刚学C#不久,有很多地方不是很明白,望各位指点,大家多多交流,哈哈再这先谢谢了。
using System;
using System.Collections;namespace ConsoleApp
{
/// <summary>
/// 温度转换
/// </summary>
public static class TempertureConverterUtils
{
/// <summary>
/// 摄氏度转成华氏度
/// </summary>
/// <param name = "temperatureCelsius"></param>
/// <returns></returns>
public static double CelsiusToFahrenheit(string temperatureCelsius)
{
double celsius = Double.Parse(temperatureCelsius);
// 转换摄氏度到华氏度
double fahrenheit = (celsius * 9 / 5) + 32;
return fahrenheit;
} /// <summary>
/// 华氏转摄氏度
/// </summary>
/// <param name = "temperatureFahrenheit"></param>
/// <returns></returns>
public static double FahrenheitToCelsius(string tempertureFahrenheit)
{
double fahrenheit = Double.Parse(tempertureFahrenheit);
// 华氏度到摄氏度转换
double celsius = (fahrenheit - 32) * 5 / 9;
return celsius;
}
} class Program
{
static void Main(string[] args)
{
string str1, str2, fahrenheit, celsius;
char ch;
str1 = "请选择输入的是摄氏度(c)还是华氏度(f),按 + 号退出:";
str2 = "请输入数值:";
do
{
Console.WriteLine(str1);
ch = Convert.ToChar(Console.Read());
try
{
if (ch == 'c' || ch == 'C')
{
Console.WriteLine(str2); // 程序走到这步正常的
celsius = Console.ReadLine(); // 查是到这,为什么就没办法输入数值和读取数值了呢?
Console.WriteLine("TempertureConverterUtils.CelsiusToFahrenheit: {0}", TempertureConverterUtils.CelsiusToFahrenheit(celsius));
}
else
{
if (ch == 'f' || ch == 'F')
{
Console.WriteLine(str2);
fahrenheit = Console.ReadLine();
Console.WriteLine("TempertureConverterUtils.FahrenheitToCelsius: {0}", TempertureConverterUtils.FahrenheitToCelsius(fahrenheit));
}
}
}
catch (OverflowException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(str1);
}
finally
{
Console.WriteLine();
}
} while (ch != '+'); Console.WriteLine("程序退出!");
}
}
}
c#
using System;
using System.Collections;namespace ConsoleApp
{
/// <summary>
/// 温度转换
/// </summary>
public static class TempertureConverterUtils
{
/// <summary>
/// 摄氏度转成华氏度
/// </summary>
/// <param name = "temperatureCelsius"></param>
/// <returns></returns>
public static double CelsiusToFahrenheit(string temperatureCelsius)
{
double celsius = Double.Parse(temperatureCelsius);
// 转换摄氏度到华氏度
double fahrenheit = (celsius * 9 / 5) + 32;
return fahrenheit;
} /// <summary>
/// 华氏转摄氏度
/// </summary>
/// <param name = "temperatureFahrenheit"></param>
/// <returns></returns>
public static double FahrenheitToCelsius(string tempertureFahrenheit)
{
double fahrenheit = Double.Parse(tempertureFahrenheit);
// 华氏度到摄氏度转换
double celsius = (fahrenheit - 32) * 5 / 9;
return celsius;
}
} class Program
{
static void Main(string[] args)
{
string str1, str2, fahrenheit, celsius;
char ch;
str1 = "请选择输入的是摄氏度(c)还是华氏度(f),按 + 号退出:";
str2 = "请输入数值:";
do
{
Console.WriteLine(str1);
ch = Convert.ToChar(Console.Read());
try
{
if (ch == 'c' || ch == 'C')
{
Console.WriteLine(str2); // 程序走到这步正常的
celsius = Console.ReadLine(); // 查是到这,为什么就没办法输入数值和读取数值了呢?
Console.WriteLine("TempertureConverterUtils.CelsiusToFahrenheit: {0}", TempertureConverterUtils.CelsiusToFahrenheit(celsius));
}
else
{
if (ch == 'f' || ch == 'F')
{
Console.WriteLine(str2);
fahrenheit = Console.ReadLine();
Console.WriteLine("TempertureConverterUtils.FahrenheitToCelsius: {0}", TempertureConverterUtils.FahrenheitToCelsius(fahrenheit));
}
}
}
catch (OverflowException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(str1);
}
finally
{
Console.WriteLine();
}
} while (ch != '+'); Console.WriteLine("程序退出!");
}
}
}
c#
解决方案 »
- ListView拖动到TreeView
- C#中引入了命名空间,可是其中的关键字点不出来
- Windows2003标准版安装sql server2005出问题!急!急!急!
- 请问已知三角行的三顶点坐标,怎样才能画出其中一个角的平分线呢?谢谢~~~~
- 我用的C#,求最快的方式怎么制作规定格式的票据?单机版的
- 关于SOCKET的问题,急求
- C#中如何控制SQL2000表中的光标
- ++++++求解(离线问题)++++++
- 请问怎么写才能得到COUNT(*)的返回值
- 如何从SQL Server2000将Image类型导出为图片文件?
- 求大牛指导,标题要长啊啊啊啊啊啊啊啊啊啊啊啊啊
- 这个需求科学不,牛不?头发都掉了
ch = Convert.ToChar(Console.Read());只是读取了字符c,此时输入流里还有回车符、换行符。
celsius = Console.ReadLine(); 正好读取了输入流里剩下的回车符换行符,所以才会无法输入。