有一个任务来创建一个 go 文件,它类似于 cat 命令。我有一些想法,但是如果没有写入文件名,我不知道如何读取输入。student@ubuntu:~/div-01/cat$ go build cat.gostudent@ubuntu:~/div-01/cat$ ./catHelloHello^Cstudent@ubuntu:~/div-01/cat$我也只能使用ioutil、io、os包和其中一个学校包来打印输出。在互联网上找到了这个,但它只是将所有输入保存在数据中,然后在我按 ctrl+C 后将其打印回来。package mainimport ( "fmt" "io/ioutil" "os")func main() { var lenght int args := os.Args[1:] for i := range args { lenght++ i++ } if lenght == 0 { data, err := ioutil.ReadAll(os.Stdin) if err == nil { fmt.Println(data) } }}
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
好吧,我找到了它并且它有效
if len(os.Args) == 1 {
_, err := io.Copy(os.Stdout, os.Stdin)
if err != nil {
fmt.Println(err)
}
fmt.Println("^C")
}
慕桂英3389331
TA贡献2036条经验 获得超8个赞
要检查参数的数量,请使用len:
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
// No arguments give, read from STDIN.
if len(os.Args) == 1 {
data, err := ioutil.ReadAll(os.Stdin)
if err != nil {
os.Exit(1)
}
fmt.Printf("%s", data)
os.Exit(0)
}
// TODO Read the content of all files.
}
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消