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
$

上一頁 11.6.6 sprintf()
回 C 速查手冊 - 標準程式庫分類索引
下一頁 11.6.8 sscanf()
回 C 速查手冊 - 標準程式庫導覽
回 C 速查手冊首頁
回 C 教材首頁
回程式語言教材首頁