golang标准输入

一直都是在leedcode上刷题,导致对golang标准输入输出不是很熟悉
目前的了解是,fmt包中的scan scanf scanln都会读到空格结束
所以要输入带空格的字符串就只能用bufio包
但是试了几种方法都是非阻塞式的,虽然在牛客oj上可以通过,但是没办法在本地ide上自己输入测试
请问大家是怎么解决这个问题的呢?#golang#
全部评论
m一下
点赞 回复
分享
发布于 2023-04-14 11:29 重庆
uu找到工作了吗?
点赞 回复
分享
发布于 2023-04-14 16:06 陕西
联想
校招火热招聘中
官网直投
用bufio.NewReader 每次读一整行
点赞 回复
分享
发布于 2023-04-26 08:29 河南
可以参考下牛客的IO练习,一般用bufio.NewScanner来获取整行输入 input := bufio.NewScanner(os.Stdin) for input.Scan() { data := input.Text() }
点赞 回复
分享
发布于 2023-05-08 11:34 广东
别用fmt,那玩意慢的要死,我被坑惨了
点赞 回复
分享
发布于 2023-05-21 09:59 天津
请问这个读取输入错误的问题是在哪呀? package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() str := scanner.Text() strArray := strings.Split(str, " ") n, _ := strconv.Atoi(strArray[0]) scanner.Scan() str = scanner.Text() strArray = strings.Split(str, " ") nums := make([]int, n) res := 0 ans := 0 for i := 0; i < n; i++{ nums[i], _ = strconv.Atoi(strArray[i]) res += nums[i] if nums[i] == 0{ ans++ } } for scanner.Scan(){ str = scanner.Text() strArray = strings.Split(str, " ") min, _ := strconv.Atoi(strArray[0]) max, _ := strconv.Atoi(strArray[1]) fmt.Printf("%v %v\n", res + min * ans, res + max * ans) } } 程序异常退出, 请检查代码"是否有数组越界等异常"或者"是否有语法错误" panic: runtime error: index out of range [1] with length 1 goroutine 1 [running]: main.main() /tmp/main.go:44 +0x34a
点赞 回复
分享
发布于 03-17 11:43 广东

相关推荐

3 10 评论
分享
牛客网
牛客企业服务