|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 `os.Stdin` 读取输入,最简单的办法是使用 `fmt` 包提供的 Scan 和 Sscan 开头的函数。请看以下程序:
|
|
|
|
|
|
-**Listing 12.1—readinput1.go:**
|
|
|
+示例 12.1 [readinput1.go](examples/chapter_12/readinput1.go):
|
|
|
|
|
|
```go
|
|
|
// 从控制台读取输入:
|
|
|
@@ -32,7 +32,7 @@ func main() {
|
|
|
|
|
|
您也可以使用 `bufio` 包提供的缓冲读取(buffered reader)来读取数据,正如以下例子所示:
|
|
|
|
|
|
-**Listing 12.2—readinput2.go:**
|
|
|
+示例 12.2 [readinput2.go](examples/chapter_12/readinput2.go):
|
|
|
|
|
|
```go
|
|
|
package main
|
|
|
@@ -80,7 +80,7 @@ input, err := inputReader.ReadString('\n')
|
|
|
|
|
|
第二个例子从键盘读取输入,使用了 `switch` 语句:
|
|
|
|
|
|
-**Listing 12.3—switch_input.go:**
|
|
|
+示例 12.3 [switch_input.go](examples/chapter_12/switch_input.go):
|
|
|
```go
|
|
|
package main
|
|
|
import (
|
|
|
@@ -128,13 +128,13 @@ func main() {
|
|
|
|
|
|
**练习**
|
|
|
|
|
|
-**练习 12.1:** word_letter_count.go
|
|
|
+**练习 12.1:** [word_letter_count.go](exercises/chapter_12/word_letter_count.go)
|
|
|
编写一个程序,从键盘读取输入。当用户输入 'S' 的时候表示输入结束,这时程序输出 3 个数字:
|
|
|
i) 输入的字符的个数,包括空格,但不包括 '\r' 和 '\n'
|
|
|
ii) 输入的单词的个数
|
|
|
iii) 输入的行数
|
|
|
|
|
|
-**练习 12.2:** calculator.go
|
|
|
+**练习 12.2:** [calculator.go](exercises/chapter_12/calculator.go)
|
|
|
编写一个简单的逆波兰式计算器,它接受用户输入的整型数(最大值 999999)和运算符 +、-、*、/。
|
|
|
输入的格式为:number1 ENTER number2 ENTER operator ENTER --> 显示结果
|
|
|
当用户输入字符 'q' 时,程序结束。请使用您在练习11.3中开发的 `stack` 包。
|