go的格式化輸入輸出
阿新 • • 發佈:2022-02-27
1, 鍵盤輸入的格式化輸入
2, 字串格式化輸入
3, 格式化輸出
點選檢視程式碼
package main import "fmt" func testScanf(){ var a int var b string var c float32 /* fmt.Scanf("%d%s%f",&a,&b,&c) // 注意要在一行輸入,用空格分隔開才行,如果輸入一個,直接enter之後,只能第一個獲取的值 fmt.Printf("收到的結果是: a=%d b=%s c=%f\n",a,b,c)*/ /*// 分別輸入123 enter 45 enter 第三個沒來得及輸入就 顯示出來 收到的結果是: a=123 b= c=45.000000 // 因為 window的enter換行符是\r\n 第二次會把第一次的輸入之後的\r\n讀進去 fmt.Scanf("%d",&a) fmt.Scanf("%s",&b) fmt.Scanf("%f",&c) fmt.Printf("收到的結果是: a=%d b=%s c=%f\n",a,b,c)*/ // 解決方法: 後面加上換行符\n,他會讀到\n就截止 fmt.Scanf是空格作為分隔符 fmt.Println("請分別輸入數字,字串,小數") fmt.Scanf("%d\n",&a) fmt.Scanf("%s\n",&b) fmt.Scanf("%f\n",&c) fmt.Printf("fmt.Scanf收到的結果是: a=%d b=%s c=%f\n",a,b,c) } func testScan(){ var a int var b string var c float32 fmt.Scan(&a,&b,&c) // fmt.Scan是以空格或者換行符作為結束的, fmt.Printf("fmt.Scan收到的結果是: a=%d b=%s c=%f\n",a,b,c) } func testScanln(){ var a int var b string var c float32 fmt.Scanln(&a,&b,&c) // fmt.Scanln必須在一行中輸入,空格作為分隔符,是以/r/n換行符結束的,一旦輸入enter就立馬結束 fmt.Printf("fmt.Scanln收到的結果是: a=%d b=%s c=%f\n",a,b,c) } func testSscanf(){ var a int var b string var c float32 var str string="88 hello 6.7" //var str string="88\n hello 6.7" // 輸出fmt.Sscanf收到的結果是: a=88 b= c=0.000000, 遇到換行符結束 fmt.Sscanf(str,"%d %s %f",&a,&b,&c) fmt.Printf("fmt.Sscanf收到的結果是: a=%d b=%s c=%f\n",a,b,c) } func testSscan(){ var a int var b string var c float32 var str string="88 hello\n\n 6.7" // 換行符作為分隔符,所以不受影響 fmt.Sscan(str,&a,&b,&c) fmt.Printf("fmt.Sscan收到的結果是: a=%d b=%s c=%f\n",a,b,c) // fmt.Sscan收到的結果是: a=88 b=hello c=6.700000 } func testSscanln(){ var a int var b string var c float32 //var str string="88 hello 6.7" // fmt.Sscanln收到的結果是: a=88 b=hello c=6.700000 var str string="88 hello \n6.7" // 遇到\n就結束了 fmt.Sscanln收到的結果是: a=88 b=hello c=0.000000 fmt.Sscanln(str,&a,&b,&c) fmt.Printf("fmt.Sscanln收到的結果是: a=%d b=%s c=%f\n",a,b,c) } func main(){ //testScanf() //testScan() //testScanln() //testSscanf() //testSscan() testSscanln() }