在Go中,可以使用bufio包中的Scanner类型来从os.Stdin读取数字并存储到数组或切片中。
首先,需要导入bufio和os包:
import (
"bufio"
"os"
)
然后,可以使用Scanner类型来读取输入的数字。Scanner类型提供了方便的方法来读取不同类型的数据,包括整数。
下面是一个示例代码,演示如何从os.Stdin读取数字并存储到切片中:
func main() {
scanner := bufio.NewScanner(os.Stdin)
var numbers []int
fmt.Println("请输入数字,以空格分隔:")
for scanner.Scan() {
text := scanner.Text()
if text == "" {
break
}
number, err := strconv.Atoi(text)
if err != nil {
fmt.Println("输入的不是有效的数字,请重新输入:")
continue
}
numbers = append(numbers, number)
}
fmt.Println("输入的数字为:", numbers)
}
在上述代码中,首先创建了一个Scanner对象,它使用os.Stdin作为输入源。然后,定义了一个空的整数切片numbers来存储读取的数字。
接下来,通过循环调用scanner.Scan()来读取输入的每一行。如果输入为空行,则退出循环。否则,使用strconv.Atoi()函数将输入的文本转换为整数。如果转换失败,则提示用户重新输入。如果转换成功,则将数字添加到numbers切片中。
最后,打印出输入的数字。
这是一个简单的示例,展示了如何在Go中从os.Stdin读取数字并存储到数组或切片中。根据实际需求,可以根据输入的格式和要求进行相应的处理和验证。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云