C# 为什么字符串的开头会被覆盖,而不是粘贴到末尾?

C# 为什么字符串的开头会被覆盖,而不是粘贴到末尾?,c#,C#,我正在建造一个温度记录器 截图: 这条线很可能不是你所期望的。 试试这个,它可能更稳定 line = line.Split(' ').Last() + "°C"; 这条线很可能不是你所期望的。 试试这个,它可能更稳定 line = line.Split(' ').Last() + "°C"; 您的输入行很可能以\r结尾,控制台屏幕上的输出不能很好地表示该行的实际内容 Console.WriteLine("18.40\r°C") 将在屏幕上显示为 摄氏40度 一个解决方案是从myport清除

我正在建造一个温度记录器

截图:


这条线很可能不是你所期望的。 试试这个,它可能更稳定

line = line.Split(' ').Last() + "°C";

这条线很可能不是你所期望的。 试试这个,它可能更稳定

line = line.Split(' ').Last() + "°C";

您的输入行很可能以\r结尾,控制台屏幕上的输出不能很好地表示该行的实际内容

Console.WriteLine("18.40\r°C")
将在屏幕上显示为

摄氏40度

一个解决方案是从myport清除输入,我猜是串行端口

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

但这不应该发生。读取行应已删除行结尾。不知何故,您的myport.NewLine属性设置为\n,而它应该设置为\r\n。

很可能您的输入行以\r结尾,控制台屏幕上的输出不能很好地表示该行的实际内容

Console.WriteLine("18.40\r°C")
将在屏幕上显示为

摄氏40度

一个解决方案是从myport清除输入,我猜是串行端口

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

但这不应该发生。读取行应已删除行结尾。不知何故,您的myport.NewLine属性设置为\n,而它应该设置为\r\n。

我看不出您的代码中有任何错误。你确定你的代码真的是T:18.40吗?同意索纳的说法,这段代码应该能正常工作。至少如果你期望18.40°C。你写了T:18.40°C,但18.40°C是你真正想要的,对吗?如果输入如你所说,那么这段代码将输出18.40°C。这是学习调试器和C文字字符串符号的理想时刻。调试器是你的朋友……我看不出你的代码有任何错误。你确定你的代码真的是T:18.40吗?同意索纳的说法,这段代码应该能正常工作。至少如果你期望18.40°C。你写了T:18.40°C,但18.40°C是你真正想要的,对吗?如果输入如你所说,那么这段代码将输出18.40°C。这是学习调试器和C文字字符串符号的理想时刻。调试器是你的朋友…这有相同的输出这有相同的输出这就是解决方案!这就是解决办法!