我在建一个温度记录仪。
截图: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"*
}
}发布于 2016-03-27 16:46:52
很可能您的输入行以"\r"结尾,控制台屏幕上的输出不能很好地表示该行的实际情况。
Console.WriteLine("18.40\r°C")会在屏幕上看上去
°C.40
一种解决方案是清除来自myport的输入(我猜想是SerialPort?)
string line = myport.ReadLine(); // line = "T: 18.40\r"
line = line.Trim(); // remove all leading/trailing whitespace但这不应该发生的。ReadLine()应该删除行的结尾。不知何故,您的myport.NewLine属性设置为"\n",而它应该是"\r\n"。
发布于 2016-03-27 16:43:17
这句话很可能不是你所期望的那样。试试这个,它可能会更稳定。
line = line.Split(' ').Last() + "°C";https://stackoverflow.com/questions/36249788
复制相似问题