fmt

Scanln用来读取输入数据

示例:

package main                                                                                                                          

import (
"fmt"
"os"
"time"
) func main() {
out := os.Stdout
var d0, d1, d2, d3 string for {
//要读取完整的一行数据, 空格分隔的每个串被一次写入到参数中, 第一个返回值是读取的参数数目,第二个返回值是错误信息
nd, err := fmt.Scanln(&d0, &d1, &d2, &d3)
if err == nil && nd != {
fmt.Fprintf(out, "d0:%s d1:%s d2:%s d3:%s", d0, d1, d2, d3)
fmt.Fprintf(out, "len:%d\n", len(d3))
fmt.Fprintf(out, "num:%d\n", nd)
} else {
fmt.Fprintf(out, "num:%d err:%v\n", nd, err)
}
time.Sleep(time.Second)
}
}

输出:

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

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

bufio

//生成一个新的reader
func NewReader(rd io.Reader) *Reader
//生成一个新的reader,size为该reader的最短buffer长度
func NewReaderSize(rd io.Reader, size int) *Reader
//返回buffer中未被读取的长度
func (b *Reader) Buffered() int
//skip掉buffer,长度为n字节
func (b *Reader) Discard(n int) (discarded int, err error)
//返回next n 字节数据
func (b *Reader) Peek(n int) ([]byte, error)
//读取buffer的数据,读取完毕或者读取p长度的字节
func (b *Reader) Read(p []byte) (n int, err error)
//从buffer中读取一个字节
func (b *Reader) ReadByte() (c byte, err error)
//从buffer中读取若干字节,到delim截止,返回包含delim
func (b *Reader) ReadBytes(delim byte) (line []byte, err error)
//读取一行,\n结尾
func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error)
//读取一个utf编码字,可能1个字节,也可能3个字节
func (b *Reader) ReadRune() (r rune, size int, err error)
//读取一段数据,delim截止,返回为[]byte类型
func (b *Reader) ReadSlice(delim byte) (line []byte, err error)
//读取一段数据,delim截止,返回string类型
func (b *Reader) ReadString(delim byte) (line string, err error)
//抛弃当前buffer的所有数据,并且重置当前值为新reader r,同时重置其它信息
func (b *Reader) Reset(r io.Reader)
//回退一个byte,回退不包含\
func (b *Reader) UnreadByte() error
//回退一个utf编码字,包含\
func (b *Reader) UnreadRune() error
//reader写入到writer中,类似于重新向的概念,需要每次
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. 在ubuntu下设置eclipse开发STM32等嵌入式设备

    之前为了能够让ROS与底层能够顺利通讯,我采用可开源开发板arduino ,因为arduino有ROS的库,能够按照ROS wiki上所给的教程就可以顺利的开发,但由于arduino的局限性,我觉得是 ...

  2. 第一百二十五节,JavaScript,XML

    JavaScript,XML 学习要点: 1.IE中的XML 2.DOM2中的XML 3.跨浏览器处理XML 随着互联网的发展,Web应用程序的丰富,开发人员越来越希望能够使用客户端来操作XML技术. ...

  3. IntelliJ Idea设置默认换行符

    IntelliJ换行CRLF, LF, CR的解释和默认设置 在window下开发有一个大坑,就是换行默认是CRLF,也就是回车换行,但是Linux下只有换行LF,这样代码提交后,会出现编译问题,所以 ...

  4. Spring Security(18)——Jsp标签

    目录 1.1     authorize 1.2     authentication 1.3     accesscontrollist Spring Security也有对Jsp标签的支持的标签库 ...

  5. [河南省ACM省赛-第四届] 序号互换 (nyoj 303)

    相似与27进制的转换 #include<iostream> #include<cstdio> #include<cstring> #include<strin ...

  6. Memcached帮助类

    一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP <?xml version="1.0"?> <configuration> ...

  7. php笔记(六)PHP类与对象之对象接口

    接口的实现 <?php //interface 关键字用于定义一个接口 interface ICanEat{ //接口里面的方法不需要实现 public function eat($food); ...

  8. C# lesson2

    一.C#数据类型 1.值类型 包括数据相关(short.long.int .double.float).布尔(bool).枚举 2.引用类型 Object .对象.数组.字符串 二.存储方式 值类型 ...

  9. 为XYplorer添加右键菜单:“使用XYplorer打开”

    在目录.磁盘右键添加: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Shell\XYplorer]"E ...

  10. PHPMailer实现PHP邮件发送

    1.首先是下载PHPMailer http://code.google.com/a/apache-extras.org/p/phpmailer/ 2.解压 从中取出class.phpmailer.ph ...