Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 从串行输入中删除\r和\n(CRLF)_Go_Serial Port_Newline - Fatal编程技术网

Go 从串行输入中删除\r和\n(CRLF)

Go 从串行输入中删除\r和\n(CRLF),go,serial-port,newline,Go,Serial Port,Newline,我目前正在编写Go代码,该代码使用串行端口通过Arduino读取传感器值。目前我的输出中有“\r”和“\n”。我知道在Python中,您可以: line = line.decode('utf-8') 为了摆脱角色。你会如何使用Golang?我对这门语言还不太熟悉,所以任何帮助都将不胜感激!以下是当前输出片段的外观: "arduinoLED\"}\r\n{\"temperature\" 另外,如果有人能告诉我如何在Go中阅读一行代码(类似于Python的line.readline()),那就太

我目前正在编写Go代码,该代码使用串行端口通过Arduino读取传感器值。目前我的输出中有“\r”和“\n”。我知道在Python中,您可以:

line = line.decode('utf-8')
为了摆脱角色。你会如何使用Golang?我对这门语言还不太熟悉,所以任何帮助都将不胜感激!以下是当前输出片段的外观:

"arduinoLED\"}\r\n{\"temperature\"
另外,如果有人能告诉我如何在Go中阅读一行代码(类似于Python的
line.readline()
),那就太好了


非常感谢

如果使用(通常的方式)逐行读取流,则常规(
\n
)和CRLF(
\r\n
)换行符都将被丢弃:

doc := "Hello\nWorld!\nGoodbye,\r\nnewlines!\r\n"

scanner := bufio.NewScanner(bytes.NewReader([]byte(doc)))
for scanner.Scan() {
    fmt.Printf("%q\n", scanner.Text()) // Note our own newline here
}
if err := scanner.Err(); err != nil {
    panic(err) // TODO: handle error properly
}

// Prints:
// "Hello,"
// "World!"
// "Goodbye,"
// "newlines!"

当然,除了上面示例中的字节读取器之外,您可能还有一个现有的读取器,但在其他方面的用法应该是相同的。

如果您使用a(这是通常的方式)逐行读取流,那么常规(
\n
)和CRLF(
\r\n
)换行符都将被丢弃:

doc := "Hello\nWorld!\nGoodbye,\r\nnewlines!\r\n"

scanner := bufio.NewScanner(bytes.NewReader([]byte(doc)))
for scanner.Scan() {
    fmt.Printf("%q\n", scanner.Text()) // Note our own newline here
}
if err := scanner.Err(); err != nil {
    panic(err) // TODO: handle error properly
}

// Prints:
// "Hello,"
// "World!"
// "Goodbye,"
// "newlines!"

当然,除了上面示例中的字节读取器之外,您可能还有一个现有的读取器,但在其他方面的用法应该是相同的。

这里有一种按行读取流的指定方法-
行。decode(
不会删除换行符,它只是将字节解码为utf8,在这种情况下,基本上什么都不做。你的头衔对这个问题来说毫无意义。您读取的是输入,而不是“输出”。输入和“输出”是与CPU(执行程序的CPU)相关的,而不是与外围设备相关的。以下是按行读取流的指定方法-
line。decode('utf-8')
不会删除换行符,它只是将字节解码为utf8,在这种情况下,基本上什么都不做。你的头衔对这个问题来说毫无意义。您读取的是输入,而不是“输出”。输入和“输出”与CPU(执行您的程序)有关,而不是与外围设备有关。谢谢!bufio.扫描仪已删除CRLF换行符。但是,我的代码当前看起来是这样的:
buf:=make([]字节,100)
n,:=port.Read(buf)
scanner:=bufio.NewScanner(bytes.NewReader([]字节(buf[:n]))
我正在扫描静态大小的切片中的字符。如何直接从串行端口而不是从片中获取字符流?谢谢。看起来你的“端口”是一个读卡器,看看你能不能做
bufio.NewScanner(端口)
…谢谢!bufio.扫描仪已删除CRLF换行符。但是,我的代码当前看起来是这样的:
buf:=make([]字节,100)
n,:=port.Read(buf)
scanner:=bufio.NewScanner(bytes.NewReader([]字节(buf[:n]))
我正在扫描静态大小的切片中的字符。如何直接从串行端口而不是从片中获取字符流?谢谢。看起来你的“端口”是一个读卡器,看看你能不能做
bufio.NewScanner(端口)
。。。