
C 速查手冊
11.6.7 scanf()
stdio.h 的函數 (function) scanf() 從標準輸入裝置接收格式化字串 (string) 。有如下的可指定的轉換格式
| %d | 有正負號的十進位整數 | int * |
| %i | 有正負號的十進位整數 | int * |
| %u | 無正負號的十進位整數 | int * |
| %o | 無正負號的八進位整數 | int * |
| %x, %X | 無正負號的十六進位整數 | int * |
| %c | 字元 | char |
| %s | 字串 | char * |
| %f | 浮點數 | double |
| %p | 記憶體位址的編碼 | void * |
| %% | 百分比符號 | % |
scanf() 的第一個參數 (parameter) 為接受使用者輸入的格式化字串,隨後可接多個參數,依格式化字串中的轉換格式的數量而定。例如要求使用者輸入兩個整數,如下
scanf("%d%d", &n1, &n2);
格式化字串中只需標明轉換格式, scanf() 會自動依輸入的順序將值存入其後的參數中。這裡要注意,其後的參數必須是指標。
以下程式示範使用 scanf() 的結果
#include <stdio.h>
int main(void)
{
int n;
printf("請輸入整數數字:");
scanf("%d", &n);
printf("剛剛輸入的整數數字為 %d\n", n);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cscanf.c
功能:示範 stdio.h 中函數 scanf() 的使用
作者:張凱慶 */
編譯後執行,結果如下
| $ gcc cscanf.c |
| $ a.out |
| 請輸入整數數字:▊ |
輸入 22 ,然後按 Enter
| 請輸入整數數字:22 |
| 剛剛輸入的整數數字為 22 |
| $ |
