Go os.Open抱怨参数无效

Go os.Open抱怨参数无效,go,Go,我正在写一个基本的程序来输入文件路径并打开文件,但是os.open抛出了无效的参数 input_arr := make([]byte, 100) for { n, err := io.ReadAtLeast(os.Stdin, input_arr, 1) if err != nil && err != io.EOF { log.Fatal(err) } //fmt.Print(

我正在写一个基本的程序来输入文件路径并打开文件,但是os.open抛出了无效的参数

    input_arr := make([]byte, 100)
    for {
        n, err := io.ReadAtLeast(os.Stdin, input_arr, 1)
        if err != nil && err != io.EOF {
            log.Fatal(err)
        }
        //fmt.Print(input_arr[:n])
        //fmt.Printf("%s", input_arr[:n])
        // \n -> 10
        if input_arr[n-1] == 10 {
            fmt.Println("\nEncountered \\n ")
            break
        }
    }

    file_name := string(input_arr)
    fmt.Printf("%T, %s", file_name, file_name)
    f, err := os.Open(file_name)
    fmt.Println(f, err)
代码输出

13:47:46:kumars@kumars-pc:/mnt/c/Users/kumars/git/golang/helloworld$
-> go run go_file.go 
Enter a file path to open: /tmp/hello.txt
Encountered \n 
string, /tmp/hello.txt
<nil> open /tmp/hello.txt
: invalid argument
创建输入\u arr:=make[]字节时,100输入\u arr中的所有值都设置为其默认值0,因为。当您用输入的一些值填充这个数组时,输入数组中的其他字节保持为0

而且


打印时引用%q,文件名中有不可打印的字符。有关如何读取输入行的信息,请参阅此答案:
<nil> open /tmp/hello.txt
: invalid argument
<nil> open /tmp/hello.txt: invalid argument
var data []byte
// ...
for {
    // ...
    if inputArr[n-1] == 10 {
        fmt.Println("\nEncountered \\n ")
        data = inputArr[:n-1]
        break
    }
}

fileName := string(data)