为什么要覆盖字符串的开头而不是将其粘贴到最后?

Mat*_*Mis 1 c#

我正在建立一个温度记录仪.

截图:http://imgur.com/U74v4AT ;

while (true)
{
      string line = myport.ReadLine(); // line = *"T: 18.40"*

      if (line.StartsWith("T"))
      {
          line = line.Substring(3) + "°C";
          Console.WriteLine(line);
          // output is *"°C.40"* instead of *"T: 18.40°C"*                   
      }
}
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 5

很可能你的输入行结束了"\r",控制台屏幕上的输出不能很好地表示实际的行.

Console.WriteLine("18.40\r°C")
Run Code Online (Sandbox Code Playgroud)

会在屏幕上看起来像

度C.40

一个解决方案是清理myport的输入(我猜是一个SerialPort?)

string line = myport.ReadLine(); // line = "T: 18.40\r"
line = line.Trim();              // remove all leading/trailing whitespace
Run Code Online (Sandbox Code Playgroud)

但它不应该发生.ReadLine()应该已经删除了行结尾.不知怎的,你的myport.NewLine财产"\n"应该是应有的"\r\n".

  • 这是解决方案! (2认同)