我需要使类似波纹管的代码段的输入自动化,其中ReadString的输入是不同的。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
buf := bufio.NewReader(os.Stdin)
value, err := buf.ReadString('\n')
if err != nil {
fmt.Println(err)
} else {
fmt.Println(value)
}
buf = bufio.NewReader(os.Stdin)
value, err = buf.ReadString('\n')
if err != nil {
fmt.Println(err)
} else {
fmt.Println(value)
}
}
不幸的是,我尝试了以下类似this question的波纹管格式的几种格式,但没有一种有效。
>> echo "data1
data2" | go run main.go
output: data1
EOF
这里data1
和data2
以及单独的ReadString方法的输入。我无法控制源代码。因此,我只能尝试更改bash输入。如何解决此问题?
之所以这样,是因为第二个字符串没有以换行符结尾。查看ReadString
的文档: