C語言補充知識
阿新 • • 發佈:2018-11-10
一、scanf
scanf函式的標準輸入格式為:scanf(格式控制字串,地址列表);
其中格式控制字串的一般形式為 %[*][資料寬度][長度]型別。
1.型別 :%o (八進位制)、%d(十進位制)、%x(十六進位制)、%f (浮點型)、%u(無符號型別)、%c (字元型)、%s(字串型)
2.資料寬度:用十進位制整數來指定字元寬度 例如
int a,b;
scanf(“%5d”,&a);
當輸入為1234567時,擷取前面5位賦給a,則有a=12345
scanf(“%4d%4d”,&a,&b);
當輸入為12345678時,此時擷取前4位給a,後4位給b,則有a=1234,b=5678
3.長度:長度格式符為l或h,其中l表示長整型資料例如%ld、雙精度浮點數%lf,h表示的是短整型資料
當輸入多個數值型資料時,如果格式控制字串中沒有非格式字元(逗號、空格等 ) 出現 ,例如scanf(“%d%d”,&a,&b);此時在輸入資料時可以用空格、TAB或回車來表示輸入資料之間的間隔,比如輸入 1_2(回車) (這裡下劃線表示的是空格),則a=1,b=2
4.如果格式控制字串中有非格式字元,則輸入時也需要輸入相應的非格式字元(正如本題所示的輸入中含有非格式字元 a=, b= 因此在輸入的時候也應該輸入a=, b=)
例如
int a,b;
scanf(“%d,%d”,&a,&b);含有非格式字元逗號,在輸入資料的時候就應該輸入1,2 此時有a=1,b=2
5.%*,表示的是在輸入資料時將會跳過這個數值
例如
int a,b;
scanf(“%d,%*d,%d”,&a,&b);輸入1,2,3 時,2將被跳過賦值,有a=1,b=3