标签:== and eof ola 缓存 一个 test str span
操作终端相关文件句柄常量
标准输出
demo:直接输出和 判断之后输出的结果不一致
func main(){
//标准输出接口, 格式, 需要格式化的内容
fmt.Fprintf(os.Stdout, "%s\n", "hello world ~")
fmt.Fprintln(os.Stdout, "hello, world ~")
}
运行结果:
hello world ~
hello, world ~
标准输入
package main
import (
"fmt"
)
var (
firstName, lastName string
age, salary int
)
func main(){
//从键盘获取string类型赋值给fistName
fmt.Scanf("%s", &firstName)
//将字符串赋值给lastName, 中间不能空格
fmt.Sscan("helloworld", &lastName)
//将一个字符串按照指定格式赋值给变量
fmt.Sscanf("18-3000", "%d-%d", &age, &salary)
fmt.Printf("%s\n%s\n%d\n%d", firstName, lastName, age, salary)
}
运行结果:
"holle go" //手动输入,有空格不行
"holle
helloworld
18
3000
带缓存的输出
package main
import (
"bufio"
"fmt"
"os"
)
func main(){
//先得到*Write缓存
buf := bufio.NewWriter(os.Stdout)
//标准输出接口, 格式, 需要格式化的内容
fmt.Fprintf(buf, "%s\n", "hello world ~")
fmt.Fprintln(buf, "hello, world ~")
buf.Flush()
}
运行结果:
hello world ~
hello, world ~
带缓存的输入
package main
import (
"bufio"
"fmt"
"os"
)
func main(){
buf := bufio.NewReader(os.Stdin)
input, err := buf.ReadString(‘\n‘) //delim 定界符
if err == nil {
fmt.Println(input)
}
}
运行结果:
hello world //手动输入
hello world
os.File 封装了文件相关的操作,前面提到的 os.Stdin,os.Stdout,os.Stderr 都是 *os.File
读取一个文件
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func readFile(){
readFile, err := os.Open("D:\\golang_workspace\\project\\src\\godev\\终端读写 && 文件读写\\05_读取一个文件\\test.txt")
if err != nil{
fmt.Println("open file failed, err is %v", err)
}
defer readFile.Close()
fileReader := bufio.NewReader(readFile)
for {
line, err := fileReader.ReadString(‘\n‘)
if err == io.EOF {
break
}
fmt.Print(line)
}
}
func main(){
readFile()
}
运行结果:
。。。
标签:== and eof ola 缓存 一个 test str span
原文地址:https://www.cnblogs.com/kaichenkai/p/11117574.html