golang(7):文件读写 & 错误处理
发布时间:2020-12-16 09:22:50 所属栏目:大数据 来源:网络整理
导读:终端读写 操作终端相关文件句柄常量 os.Stdin // 标准输入 os.Stdout // 标准输出 (输出到终端) os.Stderr // 标准错误输出 (输出到终端) fmt 常见用法 fmt.Scanln(firstName,lastName) // 从终端读取字符串(以空格分隔) fmt.Scanf( " %s %s " ,firstN
终端读写操作终端相关文件句柄常量 os.Stdin // 标准输入 os.Stdout // 标准输出 (输出到终端) os.Stderr // 标准错误输出 (输出到终端) fmt 常见用法 fmt.Scanln(&firstName,&lastName) // 从终端读取字符串(以空格分隔) fmt.Scanf("%s %s",&firstName,&lastName) // 作用同 fmt.Scanln(),但 fmt.Scanf() 既能读取字符串也能读取数字 fmt.Printf("Hi %s %s!n",firstName,lastName) // 格式化输出 fmt.Sscanf(input,format,&f,&i,&s) // 从字符串中格式化读入(第一个参数表示要读取的字符串,第二个参数表示读取格式,后面的参数表示赋给哪些变量) 示例代码: package main import "fmt" type Student struct{ Name string Age int Score float64 } func main(){ var s = "stu01 age is 18 score is 95.5" var stu Student fmt.Sscanf(s,"%s age is %d score is %f",&stu.Name,&stu.Age,&stu.Score) // 变量要传入地址 fmt.Println(stu) } // 运行结果: [[email?protected] example01_Sscanf]# go run main/main.go {stu01 18 95.5} [[email?protected] example01_Sscanf]# 带缓冲区的读写:示例代码:(从标准输入中读取) package main import ( "bufio" "os" "fmt" ) func main(){ reader := bufio.NewReader(os.Stdin) // go 的 struct 没有构造函数,所以 bufio 包中自己写了一个构造函数 NewReader,回一个 Reader实现的指针;bufio.NewReader() 需要传入一个 io.Reader 接口,这个接口中吸有一个 Read() 方法,而 os.Stdin 也实现 Read() 方法,即实现了 io.Reader 这个接口 fmt.Println("pls input:") str,err := reader.ReadString(‘n‘) // 带缓存区的读取; ReadString() 中的参数是 byte 形式的 分隔符,所以要用 单引 if err != nil { fmt.Println("read string failed:",err) return } fmt.Printf("read string success,str: %sn",str) } // 运行结果: [[email?protected] example02_bufio01]# go run main/main.go pls input: i am neo read string success,str: i am neo [[email?protected] example02_bufio01]# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |