type Reader struct {
	buf          []byte
	rd           io.Reader // reader provided by the client
	r, w         int       // buf read and write positions
	err          error
	lastByte     int // last byte read for UnreadByte; -1 means invalid
	lastRuneSize int // size of last rune read for UnreadRune; -1 means invalid
}
// NewReader returns a new Reader whose buffer has the default size.
func NewReader(rd io.Reader) *Reader {
	return NewReaderSize(rd, defaultBufSize)
}
package main

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

func main() {
	scanner := bufio.NewReader(os.Stdin)
	fmt.Print("Enter text: ")
	text,_ := scanner.ReadString('\n')
	fmt.Printf("You entered: %s", text)
}