golang 标准输入stdin

关于如何使用stdin,现举两个例子演示其使用。

example1

直接从os.Stdin中读取

package@H_301_8@ main

import@H_301_8@ (

        "fmt"@H_301_8@
        "os"@H_301_8@
)


func@H_301_8@ main() {
        var@H_301_8@ buffer [512@H_301_8@]byte@H_301_8@

        n,err := os.Stdin.Read(buffer[:])
        if@H_301_8@ err != nil@H_301_8@ {

                fmt.Println("read error:"@H_301_8@,err)
                return@H_301_8@

        }


        fmt.Println("count:"@H_301_8@,n,",msg:"@H_301_8@,string@H_301_8@(buffer[:]))

}

output:

$ ./test
Hello
count: 6,msg: Hello

example2

通过bufio读取

package main

import (

        "bufio"@H_301_8@
        "fmt"@H_301_8@
        "os"@H_301_8@
)


func main() {

        reader := bufio.NewReader@H_301_8@(os.Stdin@H_301_8@)

        result,err := reader.ReadString@H_301_8@('\n'@H_301_8@)
        if err != nil {

                fmt.Println@H_301_8@("read error:"@H_301_8@,err)
        }


        fmt.Println@H_301_8@("result:"@H_301_8@,result)

}

output:

$ ./test
nihao
result: nihao

更多信息可参考os package说明:
http://docs.studygolang.com/pkg/os/

相关文章

程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息...
本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简...
简介 默克尔树(MerkleTree)是一种典型的二叉树结构,其主要特点为: 最下面的叶节点包含存储数据或其...
接下来学习并发编程, 并发编程是go语言最有特色的地方, go对并发编程是原生支持. goroutine是go中最近本...
先普及一下, 什么是广度优先搜索 广度优先搜索类似于树的层次遍历。从图中的某一顶点出发,遍历每一个顶...
第一天: 接口的定义和实现 第二天: 一. go语言是面向接口编程. 在学习继承的时候说过, go语言只有封装,...