2 回答

TA貢獻1839條經驗 獲得超15個贊
首先要事。如果您正確處理錯誤,您就可以找出代碼不起作用的原因。您忽略了調用時引發的錯誤iotuil.ReadFile(text)
。只需添加適當的治療,您就會清楚為什么它不起作用
file,?err?:=?ioutil.ReadFile(text) if?err?!=?nil?{ ????log.Fatal(err) }
: 沒有這樣的文件或目錄
您的程序無法運行的原因可能是因為您的變量中有換行符text
。
“?ReadString 讀取直到輸入中第一次出現 delim,返回包含分隔符之前的數據的字符串。?”
從保存用戶輸入的變量中刪除類似中斷的字符,它應該可以工作,假設輸入實際上與現有文件(包括其正確的路徑)匹配。
func main() {
? ? reader := bufio.NewReader(os.Stdin)
? ? fmt.Print("Enter text: ")
? ? text, _ := reader.ReadString('\n')
? ? text = strings.TrimSuffix(text, "\n")
? ? //Add the file path
? ? //or else the user will be required to enter the entire file location
? ? f := "path_to_the_file" + text?
? ? file, err := ioutil.ReadFile(f)
? ? if err != nil {
? ? ? ? log.Fatal(err)
? ? }
? ? fmt.Println(string(file))
}

TA貢獻1817條經驗 獲得超6個贊
在這種情況下,我認為你最好進行簡單的掃描:
var namefile string
fmt.Scan(&namefile)
content, err := ioutil.ReadFile(namefile)
if err != nil {
log.Fatal(err)
}
而不是添加一個\n然后將其刪除。
- 2 回答
- 0 關注
- 157 瀏覽
添加回答
舉報