gpt4 book ai didi

go - 尝试将键盘输入写入 Golang 中的文件

转载 作者:IT王子 更新时间:2023-10-29 01:13:12 24 4
gpt4 key购买 nike

我正在尝试从键盘获取输入,然后将其存储在文本文件中,但我对如何实际操作感到有点困惑。

目前我的代码如下:

// reads the file txt.txt 
bs, err := ioutil.ReadFile("text.txt")
if err != nil {
panic(err)
}

// Prints out content
textInFile := string(bs)
fmt.Println(textInFile)

// Standard input from keyboard
var userInput string
fmt.Scanln(&userInput)

//Now I want to write input back to file text.txt
//func WriteFile(filename string, data []byte, perm os.FileMode) error

inputData := make([]byte, len(userInput))

err := ioutil.WriteFile("text.txt", inputData, )

“os”和“io”包中有这么多功能。我很困惑我实际上应该为此目的使用哪一个。

我也对 WriteFile 函数中的第三个参数应该是什么感到困惑。在文档中提到了“perm os.FileMode”类型,但由于我是编程新手,所以我有点无能为力。

有没有人对如何处理有任何提示?提前致谢,玛丽

最佳答案

// reads the file txt.txt 
bs, err := ioutil.ReadFile("text.txt")
if err != nil { //may want logic to create the file if it doesn't exist
panic(err)
}

var userInput []string

var err error = nil
var n int
//read in multiple lines from user input
//until user enters the EOF char
for ln := ""; err == nil; n, err = fmt.Scanln(ln) {
if n > 0 { //we actually read something into the string
userInput = append(userInput, ln)
} //if we didn't read anything, err is probably set
}

//open the file to append to it
//0666 corresponds to unix perms rw-rw-rw-,
//which means anyone can read or write it
out, err := os.OpenFile("text.txt", os.O_APPEND, 0666)
defer out.Close() //we'll close this file as we leave scope, no matter what

if err != nil { //assuming the file didn't somehow break
//write each of the user input lines followed by a newline
for _, outLn := range userInput {
io.WriteString(out, outLn+"\n")
}
}

我已经确定它可以在 play.golang.org 上编译和运行,但我不在我的开发机器上,所以我无法验证它是否与 Stdin 和文件完全正确地交互。不过,这应该可以帮助您入门。

关于go - 尝试将键盘输入写入 Golang 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com