如何使用 scanf() 標準輸入函式
請參考
-
課本 page ???-???
-
MSDN Library 之線上說明請查詢 scanf
標準輸出入函式庫 (stdio.lib, stdio.h)
scanf() 函式是標準輸出入函式庫中的一員,
在 C 程式中常常藉由此函式從鍵盤上讀入字元資料,
並轉換格式為程式內其它型態的資料,
此稱為 "格式化 (formatted) 的輸入 (input) 函式"
注意:以後會學到 fread, fwrite 之類非格式化的輸出入函式
如何使用 stdio 函式庫內的函式
程式中要使用 scanf() 函式的話,
在使用之前一定要有 #include <stdio.h>
這一列敘述將此 stdio.h 檔案一併含入編譯,
此檔案內有 scanf() 函式及其參數型態的宣告,
宣告一次以後就可以在程式內任何地方使用了。
基本用法:
-
由鍵盤讀入一個十進位數字至一整數中,
並讀入一個十進位實數至一浮點變數中,
int x, y;
float z;
scanf("%d",&x);
scanf("%d%f",&y, &z);
請注意:scanf()會將十進位數字字串根據 %
後的指定格式 (d 或是 f) 轉換為二進位的表示方法,
& 為取址符號,
請務必使用於目的地變數 (x, y, z) 之前,
原因會在討論指標時解釋。
-
由鍵盤讀入一字元至一字元變數中
請注意:如果 % 之前加一空格的話代表跳過所有空格
(TAB、 space、 及 Enter) 字元,例如:
-
在 TURBO C 中讀取 long 型態整數必須用 %ld,
讀取 double 型態浮點數必須用 %lf,
否則執行時讀入的數字會錯誤。
long lNumber;
scanf("%ld", &lNumber);
-----------------------
double dValue;
scanf("%lf", &dValue);
注意:在 32 位元的編譯器 (例如:Visual C/C++) 中
就無所謂了,只要用 %d 及 %f 就可以了。