慕尼黑8549860
2022-06-01 10:38:47
有一個任務(wù)來創(chuàng)建一個 go 文件,它類似于 cat 命令。我有一些想法,但是如果沒有寫入文件名,我不知道如何讀取輸入。student@ubuntu:~/div-01/cat$ go build cat.gostudent@ubuntu:~/div-01/cat$ ./catHelloHello^Cstudent@ubuntu:~/div-01/cat$我也只能使用ioutil、io、os包和其中一個學(xué)校包來打印輸出。在互聯(lián)網(wǎng)上找到了這個,但它只是將所有輸入保存在數(shù)據(jù)中,然后在我按 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貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊
好吧,我找到了它并且它有效
if len(os.Args) == 1 {
_, err := io.Copy(os.Stdout, os.Stdin)
if err != nil {
fmt.Println(err)
}
fmt.Println("^C")
}

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
要檢查參數(shù)的數(shù)量,請使用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 關(guān)注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消