godKnoows 2022-05-01 17:01 采纳率: 75%
浏览 27
已结题

为何终端输入打印出的[]byte和直接生成的[]byte结果不同

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin) 
    input, _ := reader.ReadBytes('\n') // hello world
    fmt.Printf("input: %v\n", input) // input: [104 101 108 108 111 32 119 111 114 108 100 13 10]

    u := []byte("hello world\n")
    fmt.Printf("u: %v\n", u) // u: [104 101 108 108 111 32 119 111 114 108 100 10]
}

代码如上,输入和打印见注释。为何两组[]byte的后面俩byte不同啊

  • 写回答

1条回答 默认 最新

  • CoreDump丶 2022-05-02 00:19
    关注

    因为Windows下的回车是\r\n,而linux下的回车是\n,13对应 \r 10对应\n

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 已采纳回答 8月24日
  • 修改了问题 5月1日
  • 创建了问题 5月1日