我如何在C#中读到EOF,而无需计算Enter键?

时间:2019-07-19 10:40:43

标签: c#

我最近在C之后开始学习C#,并且我一直在尝试编写一个简单的程序,该程序读取Celsius值直到EOF并将其转换为华氏度,但是由于某种原因,我的学习平台不接受我的代码运行时错误。当我在控制台中按Enter键时,出现错误消息:

  

System.FormatException:'输入字符串的格式不正确。'   ...

用于Convert.ToDouble命令行。 我该如何解决这个问题?

while (true)
{
    string celsius = Console.ReadLine();    

    if (celsius == null)    
        break;    

    float convcel = (float)Convert.ToDouble(celsius);    

    float fahren = (float)(1.8 * convcel) + 32;    

    Console.WriteLine(fahren);
}  

1 个答案:

答案 0 :(得分:3)

尝试一下-

while (true)
{
      string celsius = Console.ReadLine();    

      if (string.IsNullOrWhiteSpace(celsius))    
            break;    

       if(float.TryParse(celsius, out float convcel))    
       {
           float fahren = (float)(1.8 * convcel) + 32;    

           Console.WriteLine(fahren);    
       }
    } 

TryParse仅在能够将字符串转换为true并将转换后的值分配给float时才返回convcel

是的,正如评论中所建议,我已经更新了if条件。