最方便的方法是使用fmt.Scanf,它是fmt.Printf的镜像。
fmt.Scanf从os.Stdin读取输入,并尝试根据提供的格式设置传递的变量。
空格和换行符被视为值分隔符。
它返回成功解析的数量(防止仅匹配前几个变量)
要从任意io.Reader中读取,请使用fmt.Fscanf。
要读取整行(直到换行符或io.EOF,请使用fmt.Scanln:
您也可以使用bufio.Reader:
ReadString从读取器读取,直到读取给定字符。 我们指定了换行符\n,因此它将读取整行。
ReadString返回的值包含终止字符(\n),因此通常您希望使用例如。 strings.TrimSpace。
字符\n是Unix上的行终止符。 在Windows上更常见的是将\r\n视为行终止符。 如果希望在Windows上运行,请确保进行处理(例如,通过从返回的字符串中修剪\r字符)。
也可以使用bufio.Scanner从stdin读取行
bufio.Scanner允许使用更复杂的用法,您可以指定使用Scanner.Split将输入拆分成块的函数。
reader := bufio.NewReader(os.Stdin)fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
这是读取控制台输入的数据,可以开协程的方式来执行这个代码,协程读取,就可以在其他地方使用