在转换之前显示输入

时间:2017-02-08 14:09:29

标签: c#

我正在进行温度转换程序,我无法弄清楚如何做最后一部分。该程序允许用户选择华氏温度到摄氏温度或华氏温度转换器。

到目前为止,这是我的代码。

case "1":
     System.Console.Write("Please enter the Celsius temperature: ");
     F = TemperatureConverter.CelsiusToFahrenheit(System.Console.ReadLine());                 
     System.Console.WriteLine("Celsius is {0:F2} Fahrenheit", F);
     break;

现在,如果用户输入1到摄氏度到华氏度的转换器,那么它将输出为
"Celsius is 33.80 Fahrenheit"
我希望输出显示
"1 Celius is 33.80 Fahrenheit"

我无法弄清楚如何在F转换之前显示用户在同一行输入的内容

5 个答案:

答案 0 :(得分:3)

您需要将输入结果存储到变量中:

string input = Console.ReadLine();

然后你会使用它:

F = TemperatureConverter.CelsiusToFahrenheit(input);                 
System.Console.WriteLine("{0} Celsius is {1:F2} Fahrenheit", input, F);

请注意,您应该验证用户输入,并使用TryParse方法,因为这不会引发Parse之类的异常。我还假设用户输入应该是int,对您的用例使用相关的验证。

int parsedInput;
if (!Int32.TryParse(input, out parsedInput))
{
    //Handle invalid input here.
}

请注意,在C#7.0中,您应该能够执行以下更清洁的操作。

if (!Int32.TryParse(input, out int parsedInput))

答案 1 :(得分:3)

注意:您还应该验证您的输入(检查它是否为数字)。

int enteredValue;
if(int.TryParse(System.Console.ReadLine(), out enteredValue); 
{
    //Check if enteredValue has been set to your needs !
    //Store your converted Value
    double convertedValue = TemperatureConverter.CelsiusToFahrenheit(enteredValue); // I assume double here ..
    //Display the result on your console:
    System.Console.WriteLine($"{enteredValue} Celsius is {convertedValue} Fahrenheit");
}
else { /*Handle wrong input here*/ }

我正在使用string interpolation !

答案 2 :(得分:1)

case "1":
                System.Console.Write("Please enter the Celsius temperature: ");
                String userInput = System.Console.ReadLine();
                System.Console.Write(userInput);
                F = TemperatureConverter.CelsiusToFahrenheit(userInput);                 
                System.Console.WriteLine(" Celsius is {0:F2} Fahrenheit", F);
                break;

答案 3 :(得分:0)

您需要做的就是将用户输入存储在变量中,然后在写行语句中访问它。

case "1":
      System.Console.Write("Please enter the Celsius temperature: ");
      var userInput = System.Console.ReadLine();            
      F = TemperatureConverter.CelsiusToFahrenheit(userInput);                 
      System.Console.WriteLine($"{userInput} Celsius is {0:F2} Fahrenheit", F);
      break;

答案 4 :(得分:0)

或者不是使用额外的变量,而你以后不需要F在华氏温度上:

 case "1":
     System.Console.Write("Please enter the Celsius temperature: ");
     F = System.Console.ReadLine();                 
     System.Console.WriteLine("{0} Celsius is {1:F2} Fahrenheit", F, TemperatureConverter.CelsiusToFahrenheit(F));
     break;
相关问题