为了账号安全,请及时绑定邮箱和手机立即绑定

表现得像使用 io/ioutil 的“cat”linux 命令

表现得像使用 io/ioutil 的“cat”linux 命令

Go
慕尼黑8549860 2022-06-01 10:38:47
有一个任务来创建一个 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")

}


查看完整回答
反对 回复 2022-06-01
?
慕桂英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.

}


查看完整回答
反对 回复 2022-06-01
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信