in := bufio.NewReader(os.Stdin)
for {
r, _, err := in.ReadRune()
if err == io.EOF {
break //finished reading
}
if err != nil {
return fmt.Errorf("read failed:%v",err)
}
//... use r ...
}
文件结束这种错误不需要更多的描述,所以io.EOF有固定的错误信息--“EOF”。