C++ 格式化輸入函式scanf()
阿新 • • 發佈:2019-02-05
【功能】
格式化輸入任意資料列表
【語句格式】
scanf("格式控制符",地址列表);
①格式控制符:由%與格式符構成,將要輸入的字元按指定格式輸入
②地址列表:要輸入的各變數地址
【基本格式符】
- d:輸入十進位制整數
- u:輸入無符號整數
- o:輸入八進位制整數
- x:輸入十六進位制整數
- c:輸入單個字元
- s:輸入字串(輸入時以非空格開始,空格結束,自動填補成以'\0'為結尾)
- f:輸入實數
- e:輸入實數
【附加格式符】
- l:可用於整型、實型(例:%ld、%lf)
- h:可用於整型(例:%hd)
- *:對應輸入量不賦給一變數
- 域寬(一個整數):指定要輸入所佔的列寬(例:%4d)
【例項】
- *的使用
#include<cstdio> int main() { int a,b; scanf( "%d %*d %d" , &a , &b );//輸入1 2 3 printf( "a = %d , b = %d \n" , a , b );//輸出a=1,b=3 return 0; }
- 域寬格式符的使用
#include<cstdio> int main() { int a,b; scanf( "%4d %4d" , &a , &b );//輸入1234567 printf( "a = %d , b = %d \n" , a , b );//輸出a=1234,b=567 return 0; }
- %s的使用
#include<cstdio> int main() { char st[40]; scanf( "%s" , st );//輸入Hello World! printf( "%s\n" , st );//輸出Hello return 0; }
- 非格式符的使用
#include<cstdio> int main() { int a,b,c; scanf( "%d , %d , %d ", &a , &b ,&c );//因有間隔符“,”,故應輸入1,2,3,而非此前的1 2 3 printf( "a = %d , b = %d , c = %d\n" , a , b , c ); return 0; }
- 空格的應用
#include<cstdio> int main() { /* 輸入要求為: A B C D E時 採用格式化輸入中的空格,可以代表換行、Tab、空格 */ char str[5]; for(int i=0;i<10;i++) scanf( "%ch " , &str[i] ); scanf( "%s\n" , str ); return 0; }