golang标准输入
一直都是在leedcode上刷题,导致对golang标准输入输出不是很熟悉
目前的了解是,fmt包中的scan scanf scanln都会读到空格结束
所以要输入带空格的字符串就只能用bufio包
但是试了几种方法都是非阻塞式的,虽然在牛客oj上可以通过,但是没办法在本地ide上自己输入测试
请问大家是怎么解决这个问题的呢?#golang#
目前的了解是,fmt包中的scan scanf scanln都会读到空格结束
所以要输入带空格的字符串就只能用bufio包
但是试了几种方法都是非阻塞式的,虽然在牛客oj上可以通过,但是没办法在本地ide上自己输入测试
请问大家是怎么解决这个问题的呢?#golang#
全部评论
可以参考下牛客的IO练习,一般用bufio.NewScanner来获取整行输入
input := bufio.NewScanner(os.Stdin)
for input.Scan() {
data := input.Text()
}
请问这个读取输入错误的问题是在哪呀?
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
别用fmt,那玩意慢的要死,我被坑惨了
用bufio.NewReader 每次读一整行
uu找到工作了吗?
m一下
相关推荐
点赞 评论 收藏
分享
05-29 11:27
汕头大学 golang 程序员牛肉:简历写的像闹着玩,不太符合校招生的定位。
1.使用RestfulAPI风格的接口是一个很高大上的事情吗?你要面试官怎么提问?问你什么是Restful?同理包括你的使用gin框架,使用GORM框架。
2.使用Redis做缓存。这个也值得拿出来说吗?Redis延伸出来的问题你有解决吗?比如Redis与MySQL的数据一致性你解决了没有?Redis的缓存击穿穿透你解决了没有?
这些都是很基础的点了,你要面试官怎么提问你?给人一眼看过去就是不懂后端。而且你找的太晚了,面向26的暑期实习在三四五月份就已经招满了。
你现在这个点就很尴尬,本来国内用go的中小厂就不多,大多数都是Java。你还非要选go,选go就算了投递还这么晚。***月份就开秋招了,我估计你六七月也够呛都找到实习。大概率就是九月多找到实习之后准备春招。
找找学长看能不能包装一个实习吧,双非的同学先考虑不饿死再说。
点赞 评论 收藏
分享