Go 语言输入函数
优质
小牛编辑
142浏览
2023-12-01
func Scanf(format string, a ...interface{}) (n int, err error)
和C语言用法几乎一模一样,但是只能输入一行数据
package main import "fmt" func main() { var num1 int var num2 int fmt.Scanf("%d%d", &num1, &num2) fmt.Println(num1, num2) }
func Scan(a ...interface{}) (n int, err error)
和 C 语言 scanf 函数几乎一样,只不过不用指定格式化字符串
package main import "fmt" func main() { var num1 int var num2 int fmt.Scan(&num1, &num2) fmt.Println(num1, num2) var num3 float32 var num4 float32 fmt.Scan(&num3, &num4) fmt.Println(num3, num4) }
func Scanln(a ...interface{}) (n int, err error)
和C语言用法几乎一模一样, 只不过不用指定格式化字符串, 并且只能输入一行数据
package main import "fmt" func main() { var num1 int var num2 int fmt.Scanln(&num1, &num2) fmt.Println(num1, num2) }
以下三个函数和 Scan/Scanln/Scanf 函数一样,只不过上面三个函数是从标准输入读取数据,而下面三个函数可以通过 r 指定从哪读取数据
- func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
- func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
- func Fscan(r io.Reader, a ...interface{}) (n int, err error)
package main import "fmt" func main() { var num1 int var num2 int // 第一个参数: 指定从哪读取数据 // 第二个参数: 指定格式控制字符串 // 第三个参数: 指定要输出的数据 fmt.Fscanf(os.Stdin, "%d%d", &num1, &num2) fmt.Println(num1, num2) s := strings.NewReader("lnj 33") var name string var age int // 从指定字符串中扫描出想要的数据 // 注意: fmt.Fscanf(s, "%s%d", &name, &age) fmt.Println("name =",name, "age =",age) }
以下三个函数和 Scan/Scanln/Scanf 函数一样,只不过上面三个函数是从标准输入读取数据,而下面三个函数是从字符串中读取数据
- 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)
package main import "fmt" func main() { str := "lnj 33" var name string var age int //fmt.Sscanf(str, "%s %d",&name, &age) //fmt.Sscanln(str,&name, &age) fmt.Sscan(str,&name, &age) fmt.Println("name =",name, "age =",age) }