输入
Scan系列
该系列读取标准输入,一般指用户从键盘的输入。
func Scan(a ...interface{}) (n int, err error)
读取方式:从标准输入读取参数,输入由空格分隔,换行符视为空白符。
返回:返回成功读取的参数个数 n,如果有错,错误原因在 err 中。
func Scanf(format string, a ...interface{}) (n int, err error)
读取方式:按照 format 指定的格式,从标准输入读入。
返回:返回成功读取的参数个数 n,如果出错,错误原因由 err 指出。
注意:当同时读入字符串和数字时,要确保在 format 指定的分隔符不会被当作字符串的一部分,但是空格不会被当作字符串的一部分,因此可以利用空格避免这样的情况。
var i int
var s string
fmt.Scanf("%s,%d", &s, &i) // fmt.Scanf("%s %d", &s, &i) 可以得到想要的输出
fmt.Println(i)
fmt.Println(s)
输入:
hello,21
输出:
0
hello,21
可以看到 ,
被当作了字符串的一部分而不是分隔符。
func Scanln(a ...interface{}) (n int, err error)
读取方式:与 Scan 类似,遇到换行或 EOF 才会终止。
返回:返回成功读取的参数个数 n,如果有错,错误原因在 err 中。
Sscan系列
func Sscan(str string, a ...interface{}) (n int, err error)
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
func Sscanln(str string, a ...interface{}) (n int, err error)
该系列与 Scan 系列类似,只不过是从指定字符串(即第一个参数 str)读入。
Fscan系列
func Fscan(r io.Reader, a ...interface{}) (n int, err error)
func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
该系列与 Scan 系列类似,只不过是从 io.Reader 读入,可用于读文本文件。
输出
有 Print 系列和 Fprint 系列,用法和输入差不多。