fmt

Scanln用来读取输入数据

示例:

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "os"
  6. "time"
  7. )
  8.  
  9. func main() {
  10. out := os.Stdout
  11. var d0, d1, d2, d3 string
  12.  
  13. for {
  14. //要读取完整的一行数据, 空格分隔的每个串被一次写入到参数中, 第一个返回值是读取的参数数目,第二个返回值是错误信息
  15. nd, err := fmt.Scanln(&d0, &d1, &d2, &d3)
  16. if err == nil && nd != {
  17. fmt.Fprintf(out, "d0:%s d1:%s d2:%s d3:%s", d0, d1, d2, d3)
  18. fmt.Fprintf(out, "len:%d\n", len(d3))
  19. fmt.Fprintf(out, "num:%d\n", nd)
  20. } else {
  21. fmt.Fprintf(out, "num:%d err:%v\n", nd, err)
  22. }
  23. time.Sleep(time.Second)
  24. }
  25. }

输出:

  1. #1,如果输入的参数个数为3个
    a aa aaa
    输出:
  2. nd: err:unexpected newline
  3. #2,如果输入的参数个数为4个
    a aa aaa aaaa
    输出:
  4. d0:a d1:aa d2:aaa d3:aaaalen:
  5. num:
  6. #,如果输入的参数个数为5个
    a aa aaa aaaa aaaaa
  7. 输出:
  8. num: err:expected newline
  9. num: err:unexpected newline

fmt.Fprintf(out)可以用fmt.Println()替代

bufio

  1. //生成一个新的reader
  2. func NewReader(rd io.Reader) *Reader
  3. //生成一个新的reader,size为该reader的最短buffer长度
  4. func NewReaderSize(rd io.Reader, size int) *Reader
  5. //返回buffer中未被读取的长度
  6. func (b *Reader) Buffered() int
  7. //skip掉buffer,长度为n字节
  8. func (b *Reader) Discard(n int) (discarded int, err error)
  9. //返回next n 字节数据
  10. func (b *Reader) Peek(n int) ([]byte, error)
  11. //读取buffer的数据,读取完毕或者读取p长度的字节
  12. func (b *Reader) Read(p []byte) (n int, err error)
  13. //从buffer中读取一个字节
  14. func (b *Reader) ReadByte() (c byte, err error)
  15. //从buffer中读取若干字节,到delim截止,返回包含delim
  16. func (b *Reader) ReadBytes(delim byte) (line []byte, err error)
  17. //读取一行,\n结尾
  18. func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error)
  19. //读取一个utf编码字,可能1个字节,也可能3个字节
  20. func (b *Reader) ReadRune() (r rune, size int, err error)
  21. //读取一段数据,delim截止,返回为[]byte类型
  22. func (b *Reader) ReadSlice(delim byte) (line []byte, err error)
  23. //读取一段数据,delim截止,返回string类型
  24. func (b *Reader) ReadString(delim byte) (line string, err error)
  25. //抛弃当前buffer的所有数据,并且重置当前值为新reader r,同时重置其它信息
  26. func (b *Reader) Reset(r io.Reader)
  27. //回退一个byte,回退不包含\
  28. func (b *Reader) UnreadByte() error
  29. //回退一个utf编码字,包含\
  30. func (b *Reader) UnreadRune() error
  31. //reader写入到writer中,类似于重新向的概念,需要每次
  32. func (b *Reader) WriteTo(w io.Writer) (n int64, err error)

go pkg的更多相关文章

  1. Atitit usrQBF2312 命名空间pkg 以及 api命名 spec规范

    Atitit usrQBF2312 命名空间pkg 以及 api命名 spec规范 简化英文1 常用类库sdk的命名单词统计表1 简化时间规则1 Namsspace nam spec,参照java . ...

  2. FreeBSD pkg仓库有台湾的镜像了

    http://pkg.freebsd.org/ 在这个页面上可以看到: pkg0.bme.freebsd.org pkg0.nyi.freebsd.org pkg0.twn.freebsd.org p ...

  3. package XXX.i386.rpm is not installed(检查在Linux上安装Oracle所需的pkg时)

    如下转自一个论坛,忘了哪了,一直在电脑上存的. I've got Oracle Enterprise Linux 5 to install an Oracle server. Checking req ...

  4. FreeBSD的新一代包管理工具Pkg 1.3.0 发布

    Pkg 是 FreeBSD 下一代的打包管理工具,用来替代原来的 pkg_info/pkg_create/pkg_add 工具,可以本地打包,也提供远程打包,主要是为了方便远程二进制包升级. Pkg ...

  5. 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用

    步骤一:首先自定义类(这里Himi自定义类名 “MySprite”) MySprite.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // //  ...

  6. 关于MAC的pkg和mpkg的分别

    程序制作完毕后,在mac下通常的方法是要制作一个pkg的安装包,可是你会发现pkg和mpkg的文件出现的比較多,笔者也是经过了一定的试验和尝试,才了解到,pkg是单个文件的pkg,而mpkg事实上是多 ...

  7. golang之pkg(包)

    一.概述 Golang拥有超过100个标准包(可用go list std |wc -l查看) 任何包系统设计的目的都是简化大型程序的设计和维护工作,通过将一组相关的特性放进一个独立的模块以便于理解和更 ...

  8. MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk

    MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk 经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里 ...

  9. 如何解压 Mac OS X 下的 PKG 文件(网摘)

    如何解压 Mac OS X 下的 PKG 文件 原文出处:[Macplay] 有时候我们可能需要解包 PKG 格式的安装文件包,在 OS X 系统下完成该操作并不需要你额外再安装软件,系统内置的命令就 ...

  10. macbook查找卸载pkg

    pkg是macOS下的一种比较复杂的安装方式,装完了想要卸载有点不太好找,MAC下有个命令工具pkgutil,运行命令pkgutil --pkgs可以找到你的所有pkg,如图: 当然,也可以用grep ...

随机推荐

  1. Asp.net简单代码设置GridView自适应列宽不变形

    动态绑定的GridView由于列数不固定,而列又太多,是要自定设置gridView的宽度 //在GridView的行数据绑定完的事件中设置 protected void gvObjectList_Ro ...

  2. Python学习笔记——基础篇【第五周】——os模块和sys模块

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录 ...

  3. Vimperator技巧

    Vimperator技巧 什么是Vimperator?Firefox的一个插件,模拟vim操作. 1. 用]]打开"下一页"链接,[[打开"上一页"Vimper ...

  4. 搭建git代码服务器

    在代码管理中,通常需要使用版本管理工具,git就是一个不错的选择,这里简单罗列一下git服务器的搭建过程. 1. 安装git工具包 2. 初始化git库:在代码服务器上,通常只需要创建一个不含有工作目 ...

  5. jmeter里json path postprocessor的用法

    后置处理器添加 json path postprocessor. 用处: 当前接口响应返回的json中提取内容,作为变量可以在不同的请求中传递. 如下,从登陆接口返回的json中提取user id,变 ...

  6. Linux 网络性能tuning向导

    本文的目的不完全在于提供调优信息,而是在于告诉读者了解Linux kernel如何处理数据包,从而能够在 自己的实践中发挥Linux 内核协议栈最大的性能 The NIC ring buffer 接收 ...

  7. C# 手机格式验证

    C# 手机格式验证 //电信手机号码正则 Regex dReg = new Regex(@"^1[3578][01379]\d{8}$"); //联通手机号正则 Regex tRe ...

  8. webpack+React.js

    Webpack是目前基于React和Redux开发的应用的主要打包工具.我想使用Angular 2或其他框架开发的应用也有很多在使用Webpack. 当我第一次看到Webpack的配置文件时,它看起来 ...

  9. 无法启动MYSQL服务”1067 进程意外终止”解决办法

    原文:http://www.111cn.net/database/mysql/48888.htm   本文章主要是总结了各种导致mysql提示无法启动MYSQL服务"1067 进程意外终止& ...

  10. Linux Date命令学习笔记

    date 根据给定格式显示日期或设置系统日期时间.print or set the system date and time 指令所在路径:/bin/date 命令参数: 参数 描述 -d 显示字符串 ...