輸入和輸出是程式語言使用比較基礎,但容易被忽視的地方。因為實際開發的都是不會使用命令列,但這方面仍然是需要我們掌握的知識點。
go語言中函式就是指類似c語言的函式,而方法指的是實現了介面的函式,兩個在概念上是不一樣的。首先go語言
fmt
包中提供了scanf
和printf
像c語言那樣處理輸入和輸出,使用的格式控制字元中常見的和c語言一致,一部分則不一致。
go轉義字元
格式控制字元,又稱轉義字元,它對應乙個變數名,以指定的格式將變數連線到輸出的字串中,它在字串中相當於佔位符,所處位置的內容將會被轉化成對應格式的變數值替代。
go語言中的轉義字元(go程式設計師稱為verb),像%d
,%s
,%f
和c語言保持一致,但同時也有一些不一樣的格式控制字元,總結如下:
verb
description
%d十進位制正數
%x, %o, %b
十六進製制,八進位制,二進位制正數
%f, %g, %e
單精度,雙精度,科學計數法表示浮點數
%t布林型:true或false
%c字元
%s字串
%q帶引號字串(「abc」)或字元(『c』)
%v內建格式的任何值
%t任何值的型別
%%百分號本身
注:(因為%被用作轉義字元標誌了,所以要想輸出百分需要用百分號轉義一下)。
例項(其他資料型別同理)。
package main
import
"fmt"
func
main()
// 輸入
4// 輸出
4
不使用轉義字元
轉義字元是用來明確指定資料型別的,如果不需要明確指定,fmt
包下提供了對應的scan()
和print()
,用法也一致,不再舉例。
多種形式的輸出 區別
print()
系列在golang中是屬於輸出到標準錯誤流中並列印,官方不建議寫程式時候用它,可以在debug時候用。
fmt.print()
系列對應的是標準的輸入輸出流,建議使用。
go語言流式處理標準輸入使用bufio
包中的newscanner
方法,來讀取os
包下預置的stdin
,即標準輸入流。流的概念的的話,是所有程式語言共享的,因此這裡不再贅述。
bufio
,顧名思義,包下的工具以帶緩衝的方式處理輸入輸出流。
找出重複行 命令列讀取
本例來自go語言聖經,變數名略有改動。
// 模擬unix uniq命令 找到相鄰的重複行
package main
import
("bufio"
"fmt"
"os"
)func
main()
for line, n :=
range count
}}
// 輸入用例 ^d 是鍵盤 ctrl+d 告知系統輸入結束
bear
bear
peach
orange
orange
orange
banana^d
// 輸出結果
2 bear
3 orange
找出重複行 檔案讀取本例來自go語言聖經,變數名略有改動。go語言讀檔案需要用到
io/ioutil
包下的readfile方法。以下這個例子還使用到了strings
包下的split
方法,用於分割字串。
// 模擬unix uniq命令 找到相鄰的重複行
package main
import
("fmt"
"io/ioutil"
"os"
"strings"
)func
main()
for_
, line :=
range strings.
split
(string
(data)
,"\n")}
for line, n :=
range count
}}
輸入樣例
// file1
steve
mike
john
// file2
michael
steve
riven
執行結果
d:\goproject\main>go run io******.go file1.txt file2.txt
2 steve
go程式語言(the go programming language中文版) 機械工業出版社
c/c++——c語言格式化輸入輸出
go 輸入輸出流 ioutil
雖然 io 包提供了不少型別 方法和函式,但有時候使用起來不是那麼方便。比如讀取乙個檔案中的所有內容。為此,標準庫中提供了一些常用 方便的io操作函式。說明 這些函式使用都相對簡單,一般就不舉例子了。有時候我們需要傳遞乙個io.readcloser的例項,而我們現在有乙個io.reader的例項,比...
Go 基礎 標準輸入輸出
本文主要參考csdn以及golang官方文件書寫,主要是fmt包提供的標準輸入輸出的筆記 fmt.scan sscan fscan 以及對應的 f,ln和print類族 二.標準輸出 三.io.reader io.writer 補充 1.fmt.scan fmt.scanf fmt.scanln這三...
R語言 輸入輸出
在s互動執行時要顯示某乙個物件的值只要鍵入其名字即可,如 x 1 10 x 1 1 2 3 4 5 6 7 8 9 10這實際上是呼叫了print 函式,即print x 在非互動執行 程式 中應使用print 來輸出。print 函式可以帶乙個digits 引數指定每個數輸出的有效數字位數,可以帶...