前言
本文為《學會 C 語言》一書的學習筆記。
主控台輸入與輸出
C 語言最常使用的標準輸入裝置是鍵盤,標準輸出裝置是電腦螢幕,即所謂的主控台輸入輸出(Console I/O)。
C 語言的標準輸入與輸出是使用文字模式的輸入與輸出,這是循序一行一行組成的文字串流,每一行是由新行字元 \n 結束。
輸入與輸出整數
使用 scanf() 函數讀取整數,使用 printf() 函數將整數輸出。
1 |
|
scanf()函數的格式字元%d代表資料型態是整數。scanf()函數使用第一個參數的格式字元對應第二個參數的變數,變數之前使用&取址運算子,可以取得變數的記憶體位址。printf()函數輸出整數,格式字元是%d。
輸入與輸出浮點數
使用 scanf() 函數讀取浮點數,使用 printf() 函數將浮點數輸出。
1 |
|
scanf()函數的格式字元如果是%lf代表資料型態是double。scanf()函數的格式字元如果是%f代表資料型態是float。scanf()函數使用第一個參數的格式字元對應第二個參數的變數,變數之前使用&取址運算子,可以取得變數的記憶體位址。printf()函數不論輸出double或float,格式字元都是%f。
輸入與輸出字串
使用 scanf() 函數讀取字串(無法讀取空白字元),使用 printf() 函數將字串輸出。
1 |
|
scanf()函數的格式字元%s代表資料型態是字串。- C 語言的字串是
char型態的一維陣列。 - C 語言的陣列名稱本身就是位址,所以不需要在之前使用
&取址運算子。 printf()函數輸出整數,格式字元是%s。
使用 gets() 函數讀取輸入字串(可以讀取空白字元),使用 puts 函數將字串輸出。
1 |
|
gets()函數可以從標準輸入裝置讀取整行文字內容的字串。
輸入與輸出單一字元
使用 getchar() 函數讀取單一字元(使用緩衝區),使用 putchar() 函數將單一字元輸出。
1 |
|
使用 getch() 函數讀取單一字元(沒有使用緩衝區),使用 putchar() 函數將單一字元輸出。
1 |
|
getch()函數沒有使用緩衝區,也不會產生回應,讀取到字元會馬上送給 C 程式進行處理。
輸入與輸出多種型態
使用 scanf 函數可以讀取多筆不同型態的資料,例如:
1 | scanf("%f, %d, %f", &x, &y, &z); |
空白字元
scanf() 函數的格式字串可以使用空白字元,如跳脫字元 \t(水平定位符號)、 \n(換行符號)等。使用者在輸入資料時,只需間隔一個空白字元即可(最多也只會視為一個)。
1 | "%f%d" // 23.5 45 |
非空白字元
在格式字串如果擁有非空白字元,使用者在輸入資料時,也需要同時包含這些非空白字元。
1 | "%f, %d, %f" // 23.5, 45, 10.2 |
格式字元
在 scanf() 函數的格式字串中一定需要格式字元,一個格式字元對應一種資料型態。
| 格式字元 | 說明 |
|---|---|
| %d | 整數 |
| %f | 浮點數(float) |
| %lf | 浮點數(double) |
| %s | 字串 |
| %e | 科學符號的數値 |
| %u | 無符號整數 |
| %o | 八進制整數 |
| %x | 十六進制整數 |
在 C 程式使用 scanf() 函數同時輸入多個數値資料。
1 |
|
參考資料
- 陳會安(2016)。學會 C 語言。台北市:旗標。