Go os.Open抱怨参数无效
我正在写一个基本的程序来输入文件路径并打开文件,但是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(
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)