Go 语言输入函数

优质
小牛编辑
144浏览
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)
  }