通过os.stdin读取输入,输入后没有反应

jiangyd · · 1457 次点击
已解决 ``` package main import ( "fmt" "io" "os" ) func main() { data, err := Readjj(os.Stdin, 3) if err != nil { fmt.Println(err) return } fmt.Println(string(data)) } func Readjj(r io.Reader, num int) ([]byte, error) { data := []byte{} p := make([]byte, num) for { n, err := r.Read(p) if err != nil && err != io.EOF { return nil, err } else if n == 0 { break } else if n < num { data = append(data, p[:n]...) return data, nil } else { data = append(data, p[:n]...) } } return data, nil } ```
#7
更多评论
polaris
社区,需要你我一同完善!
os.Stdin 不是这么用的吧。 你可以试试: `echo abcdef | go run std.go` 应该能正常输出
#1
你这个是可以输出,但是os.stdin,是可以在运行时输入内容,并打印出来的,fmt.scan,都是依赖这个,我这里不知道遇到了什么问题
#2